TFS Branch Merge на разных ветках - PullRequest
3 голосов
/ 15 марта 2012

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

$ Base

 - $Dev Branch 1

 - $Integration Branch 2

Я хотел бы объединить изменения в Dev Branch 1 с Integration Branch 2так что ребята из сборки могут начать сборку Hudson этой ветки интеграции.

Я использую Visual Studio 2008 Team, и когда я пытаюсь найти Dev Branch1, я вижу только раскрывающийся список База на целевой ветви.

Может ли кто-нибудь сообщить, как и если возможно объединить ветки Dev и Integration выше.

Спасибо

Ответы [ 2 ]

9 голосов
/ 15 марта 2012

Есть несколько способов сделать это, но оба они не так хороши.Для первого способа вам необходимо установить TFS 2010 электроинструмент

  1. Использовать набор полок.Начните слияние с dev на базу, разрешите любые конфликты.Не проверяйте слияние, вместо этого отложите изменения.Затем из командной строки используйте tfpt unshelve "my shelve set" /migrate /source:$/teamProject/dev /target:$/teamProject/integration.Это перенесет отложенные изменения в ветку интеграции без необходимости фиксировать изменения в базовой ветке.

  2. Выполнить безосновательное объединение между dev и интеграцией.Вы можете сделать это, используя команду tf merge $/teamProject/dev $/teamProject/integration /baseless /recursive, когда безосновательное слияние установило отношения ветвления, и затем вы можете выполнять дальнейшие слияния через пользовательский интерфейс.Имейте в виду, что безосновательное слияние не будет знать ни о каких файлах или папках, которые были переименованы или перемещены, поэтому вам необходимо убедиться, что вы приняли это к сведению.

Лично я бы выбрал вариант 1, если это разовая вещь.Если это будет чем-то, что, по вашему мнению, вам нужно будет делать регулярно, то я сделаю необоснованное слияние, когда все 3 ветви синхронизированы, т.е. сразу после того, как вы слились с dev в base для интеграции.Это должно минимизировать любые проблемы с необоснованным слиянием.

Возможно, вы также захотите взглянуть на свою стратегию ветвления, чтобы вам не приходилось выполнять сложные операции слияния очень часто.Если вы используете ветку интеграции, то она должна иметь прямую связь с любыми ветками, которые вам нужно интегрировать.Ознакомьтесь с руководством по разветвлению ALM .

0 голосов
/ 15 марта 2012

Вы можете объединить только туда, откуда была создана ветка. Вам придется объединиться с Dev на Base, а затем снова с Base на Integration.

Если вы хотите объединиться из Dev в Integration напрямую, то ваша ветка Integration должна быть создана как ветка из Dev, а не Base.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...