Как я могу применить набор изменений к другой ветви без слияния / выбора вишни? - PullRequest
0 голосов
/ 08 февраля 2019

У нас долгая история наборов изменений вишни между филиалами с TFVC.Я усердно работаю над изменением этой практики, но есть один сценарий, для которого мне трудно придумать чистое решение.

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

Во многих случаях, однако, это не так.Когда работа начинается, ясно, что изменение будет включено в исправление, и разработчики отметят его в какой-то другой ветке.

Раньше мы выбирали этот набор изменений (объединяли подмножество наборов изменений, которые являются кандидатами наслияние) через ветку, из которой мы можем развернуть в производство.

Мне интересно, какие у меня есть альтернативы.

  1. Вручную отменить изменения в целевой ветви?Идеально использовать копирование и вставку, чтобы уменьшить вероятность конфликтов слияния, которые не могут быть автоматически разрешены.
  2. Слияние (выбор вишни), но каким-то образом уберите флаг [merge], чтобы кредит на слияние не применялсяна ревизию.Я предполагаю, что если бы я смог добиться этого, то получил бы тот же эффект, что и в пункте 1 выше, без такого большого риска ошибок.

Из двух, вторая кажется наиболее привлекательной, но у меня нетдалеко смог сделать это.Вот некоторые вещи, которые я попробовал.

  1. Перелистывая панель «Ожидающие изменения» в Team Explorer, ища какие-то средства для удаления кредита на слияние.
  2. Ищем вариантс помощью инструмента командной строки tf.Самой близкой, что я получил, была следующая команда, которая, по крайней мере, дала мне понять, что будет применяться кредит слияния.

    tf vc status / recursive / format: подробный

enter image description here

Отложить отложенные изменения, не сохраняя их локально.Отмените полку и удалите кредит слияния в процессе.Я начал думать, что это может быть опция, когда я увидел опцию /nomerge в команде tf unshelve.У меня версия 15.129.28124.3.

d: \ Projects \ Main> tf unshelve /?Microsoft (R) TF - Team Foundation Version Control Tool, версия 15.129.28124.3 Авторские права (c) Корпорация Microsoft.Все права защищены.

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

tf vc unshelve [/переместить] [shelvesetname [; имя пользователя]] [itemspec] [/ recursive] [/ nomerge] [/ noautoresolve] [/ noprompt] [/ login: имя пользователя, [пароль]]

К сожалению, этот вариант не дал того эффекта, на который я надеялся - кредит слияния не будет присутствовать в ожидающих изменениях, когда я перестану работать.Опция (и опция /noautoresolve) здесь тоже странным образом не присутствует?

https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/unshelve-command?view=azure-devops

Есть ли способ заставить это работать?Есть ли какой-то другой подход, на который я бы рассчитывал?

Примечание : Хотя Рэймонд Чен освещает GIT в своем Хватит собирать вишню, начинайте слияние серия, я нашел это весьма актуальным.

...