Создание ответвления в проекте с его родительским элементом в другом проекте в TFS

#tfs #merge #branch #project #parent

#tfs #слияние #ветка #проект #родительский элемент

Вопрос:

У меня следующая структура:

$/ProjectA [Использует шаблон MS Agile]
—Branch1

$/ProjectB [Использует пользовательский гибкий шаблон]
— [Будет создана ветка]

Как я могу создать эту новую ветку в ProjectB, которая имеет родительскую связь с $/ProjectA/Branch1?

В нашем требовании говорится, что мы не можем работать в одном проекте, потому что мы должны использовать разные шаблоны, но мы все равно хотим объединить код из нового проекта обратно в ProjectA. Я проверил опцию в TFS при создании нового проекта, который позволяет использовать существующий элемент управления версиями, но проблема с этим:

1. Нет возможности добавлять определенные ветки в проект [все или ничего]

2. По какой-то причине я не могу переименовать эту новую ветку в новом проекте

Я понимаю, что этого можно достичь, используя необоснованное слияние между этими 2 проектами, но я хотел бы знать, есть ли еще способ обеспечить плавное слияние между этими 2 ветвями в разных проектах.

P.S: мы используем VS 2010 с TFS 2010

Ответ №1:

Не должно быть никаких проблем при простом переходе от одного командного проекта к другому. Вы должны быть в состоянии сделать это так же, как и в любой другой ветке: просто выберите $/ProjectA/Branch1 , выберите ветку и введите целевой путь ветки $/ProjectB/ToBeCreatedBranch .

Это связано с тем, что на самом деле командные проекты имеют довольно ограниченный охват в системе управления версиями TFS — она в первую очередь рассматривает дерево управления версиями как большую иерархию, начинающуюся с $/ , а командные проекты не являются чем-то особенным, за исключением некоторых очень специализированных операций. (Политики возврата запрашиваются Team Project, как и настройки для locklevels, а метки привязаны к командным проектам.)

Мне немного неясно, какие параметры управления версиями вы указали при создании нового командного проекта — вы должны были просто создать для него новый узел дерева исходных текстов, а затем вы можете создавать свои ветви проекта ниже $/ProjectB .

Комментарии:

1. Дух !, Я чувствую себя идиотом сейчас, не понимал, что вы даже можете изменять проекты при ветвлении. Спасибо за быстрый ответ. Конечно, теперь я могу даже переименовать новую ветку в $/ProjectB.

2. Это не очевидно — некоторые части TFS (например, рабочие элементы) очень специфичны для командного проекта, в котором они находятся, и не обязательно могут быть легко перемещены. Просто повезло, что контроль версий не так ограничен!