Как убрать ветку с середины иерархии? - PullRequest
12 голосов
/ 20 октября 2011

У меня есть командный проект, созданный с использованием «стандартного» шаблона ветвления из руководства по ветвлению ALM Rangers:

Standard Branch Hierarchy

После создания я обнаружил, что мне действительно нужен только шаблон "Basic". То есть мне не нужна ветка "Пакет обновлений".

Есть ли способ удалить ветку «Пакет обновления» и «залечить» иерархию, чтобы «Релиз» находился в разделе «Основной» в иерархии? Прямо сейчас каждый набор изменений в иерархии «Пакет обновлений» имеет соответствующий набор изменений в иерархии «Выпуск», так как «Пакет обновлений» только что появился.

Ответы [ 4 ]

5 голосов
/ 20 октября 2011

Ветви в TFS, к сожалению, являются старомодными (или «похожими на динозавров», если вы спросите Торвальдса;), когда они созданы, структура задана и не может быть изменена.Я полагаю, вам придется создать новую ветку Release непосредственно под Main , а затем выполнить необоснованное слияние из старой ветви Release в новую.Я думаю, что вы должны использовать параметр /noprompt в команде слияния, чтобы остановить отображение диалогового окна «Разрешение конфликтов».

Это даст вам больше конфликтов, чем действительно необходимо, поскольку TFS не будет знать, какого предкаиспользовать.Но так как вы захотите взять все из исходной ветки Release, вы можете использовать команду tf resolve /recursive /auto:TakeTheirs, чтобы указать TFS всегда принимать изменения в исходной ветке.

После этого вы сможете удалитьстарое дерево веток.

Сложно, но не невозможно.

3 голосов
/ 15 мая 2014

Ну, я не знаю о старой версии TFS, но, по крайней мере, в TFS2012 / VS2013, вы можете сделать:

  1. Безосновательное слияние из Main -> Выпуск
  2. Source Control Explorer> Branching and Merging> Reparent, выберите Main (новый родитель)

Готово!

2 голосов
/ 08 августа 2013

Следующее сработало для меня в похожем сценарии

tf merge /baseless /recursive /noprompt /discard $/TFS/Path/To/Release $/TFS/Path/To/Main

тогда:

  • удалить ветку "Пакет обновлений"
  • регистрация в "Main" и "Service Pack"

теперь вы можете выполнять обычные графические слияния от «Release» до «Main»

ПРИМЕЧАНИЕ. Как уже упоминалось многими людьми, будьте осторожны с необоснованными слияниями, которые могут укусить вас за драгоценности в дальнейшем при злоупотреблении.

1 голос
/ 29 июля 2014

Самое простое решение - не удалять и не создавать родительские элементы.

Ветвь пакета обновления - это «ветвь пакета обновления» только по имени.Удалите ветку «release» и переименуйте «ветку пакета обновления» в «release».

...