Подтвердить что ты не робот

Как удалить ветвь из середины иерархии?

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

Standard Branch Hierarchy

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

Есть ли способ удалить ветку "Service Pack" и "исцелить" иерархию, чтобы "Release" находилась под "Main" в иерархии? В настоящее время каждый набор изменений в иерархии "Service Pack" имеет соответствующий набор изменений в иерархии "Release", поскольку "Service Pack" только что мешал.

4b9b3361

Ответ 1

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

Филиал службы обновления является "ветвью службы обновления" только в имени. Удалите ветвь "release" и переименуйте ветвь "пакет обновления" в "release".

Ответ 2

Филиалы в TFS, к сожалению, являются старомодными (или "похожими на динозавры", если вы спросите Torvalds;) в том, что когда-то созданный, структура установлена ​​и не может быть изменена. Я считаю, что вам нужно будет создать новую ветку Release непосредственно под Основной, а затем выполнить безликое слияние от старой ветки Release до новой. Я думаю, вы должны использовать параметр /noprompt для команды слияния, чтобы остановить диалог "Разрешить конфликты".

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

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

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

Ответ 3

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

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

Готово!

Ответ 4

Следующее работало для меня в аналогичном сценарии

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

то

  • удалить ветвь "Service Pack"
  • регистрация "Main" и "Service Pack"

теперь вы можете выполнять обычный слияние GUI с "Release" на "Main"

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