В чем разница между отменой набора изменений и сохранением целевой версии при разрешении конфликтов в системе управления версиями Microsoft TFS

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

«сохранить целевую версию» и «отменить набор изменений», оба они говорят, что целевая версия является правильной, которая будет сохранена. Итак, в чем разница между ними? почему они оба существуют?


person faza    schedule 16.11.2017    source источник


Ответы (1)


Разница в тонком способе хранения истории. Когда вы «Сохранить целевую версию», сохраняется заявка на изменение со слиянием, в котором указывается игнорировать различия в будущем.

Когда вы «отменяете» изменения в слиянии, никакая заявка не регистрируется, и будущее слияние между этими ветвями/файлами предложит снова объединить эти изменения.

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

Вы должны выполнить первый (Взять/Сохранить), если хотите, чтобы эта версия стала ведущей, и не хотите объединять эти различия в будущем.

Многие разработчики не понимают разницы, и могут возникнуть проблемы, когда у вас есть долгоживущие ветки, такие как dev и main. Если люди часто используют «держать цель», слияние между dev и main не покажет никаких изменений по сравнению с слиянием, но различие между ними может выявить много различий. В общем, я направляю команды на отмену изменений, а не на выбор «оставить свои» или «забрать свои».

person jessehouwing    schedule 16.11.2017
comment
Спасибо за быстрый ответ. Что именно вы подразумеваете под отменой? Я думаю, что это эквивалентно откату в TFS. это отличается от сброса. Я имею в виду именно эту команду: tf merge /discard - person faza; 17.11.2017
comment
Нет отмены - это «отмена ожидающих изменений», она отменяет слияние для этого конкретного файла. Отменить набор изменений из командной строки — это то же самое, что «взять их», говоря, что эти изменения никогда не нужно будет объединять. - person jessehouwing; 18.11.2017
comment
поэтому ответ будет: Нет никакой разницы между отменой набора изменений и сохранением целевой версии. не так ли? - person faza; 18.11.2017
comment
Единственное отличие состоит в том, что при отмене набора изменений отменяются изменения для всех файлов в этом наборе изменений. Сохранить цель можно на уровне файла. Таким образом, у вас есть варианты: Keep target, keep source, undo pending changes на уровне каждого файла и discard changeset на уровне набора изменений. - person jessehouwing; 18.11.2017