В TFS, как мне сделать необоснованное слияние на определенных наборах изменений?
Как и в большинстве случаев в TFS, вы получаете больше, чем вы рассчитывали. В этом случае я вижу больше изменений файла во время слияния, чем ожидал.
У меня есть 2 дочерних ветки, давайте будем возбуждать и называть их branch1 и branch2. Оба имеют изменения, внесенные в них с момента их создания. Мне нужно взять 12 конкретных наборов изменений из branch2 и объединить их в branch1. Изменения от ветки2 не могут вернуться к родительской ветке. Так что это простой случай для необоснованного слияния, но результаты не то, что я ожидал.
Взяв первый набор изменений, я выполнил следующую команду:
tf merge /baseless /recursive /version:C95654 branch2 branch1
Изменения 95654 содержат 12 измененных файлов, но после этой команды я получаю 56 отредактированных файлов с конфликтами. Я ожидал только слить указанный набор изменений из одной ветки в другую, но, похоже, он объединил всю папку.
Итак, почему я могу изменить 56 файлов вместо 12, когда я указал набор изменений? Также, что я могу сделать, чтобы ограничить то, что слилось только с содержимым этого набора изменений?
Ответы
Ответ 1
Если вам нужно объединить определенный набор изменений, вам нужно использовать следующий оператор:
tf merge /baseless /recursive /version:C95654~C95654 branch2 branch1
(Это означает ТОЛЬКО набор изменений C95654).
Используемая вами командная строка означает каждый набор изменений до и с C95654.
Ответ 2
Мне пришлось использовать пути tfs для двух ветвей. Шаги были следующими: добавьте обе ветки в нужное рабочее пространство; получить последнюю; откройте Windows PowerShell в целевой папке. Получить пути tfs
>tf workspaces /format:detailed
>tf workfold
Затем используйте $paths для ветвей. Тот же номер набора изменений между безликим слиянием тильды для одного набора изменений.
>tf merge /baseless /recursive /version:C999~C999 "$/MyRepo/Current" "$/MyRepo/Development"
Подробнее здесь -
http://blogs.msdn.com/b/bharry/archive/2011/08/31/merge-enhancements-in-tfs-11.aspx