У нас возникают проблемы при попытке выполнить слияние с помощью Team Foundation Version Control из Visual Studio 2017, и мы не знаем, возможно ли это или даже целесообразно сделать так, как мы хотим.
Я собираюсь объяснить упрощенную версию моей проблемы:
У нас есть ветвь root в Source Control, давайте назовем ее Root, и у нас есть ветвь Root, которую я буду Вызовите Branch.
Мы вносим изменения в Branch и, когда мы уверены, что хотим их внести на Root, мы объединяем ветвь с Root (мы выполняем обратную интеграцию). Дело в том, что в прошлом мы проводили некоторое слияние, когда мы выбрали только подмножество наборов изменений в Branch, чтобы объединить их в Root.
Теперь, после некоторых других изменений в Branch, мы знаем, что последняя версия У нас работает Branch, и мы хотим объединить эту версию с Root.
. Проблема в том, что когда мы выполняем слияние, он принимает версию файла, которая была в последней ревизии, изменил этот файл И этот набор изменений не был объединен в Root. Но мы знаем, что последняя версия этого файла в Branch - это та версия, которую мы хотим, даже если она не появляется, потому что набор изменений, который позволил ему перейти в это состояние, мог быть ранее объединен (фактически, большинство элементов связи, последние версия этого файла в Branch и Root идентичны, и мы не хотим изменять это).
Пример:
Мы превращаем Changeset 1 в Branch и объединяем его в Root.
Мы превращаем Changeset 2 в Branch, модифицируя File1 (но не объединяем его в Root).
Мы превращаем Changeset 3 в Branch, снова модифицируя File1, и мы объединить его в Root. Теперь Branch и Root имеют одинаковую версию File.
Мы превращаем Changeset 4, 5, 6 в Branch, не связанную с File1.
Теперь мы хотим объединить последнюю версию версия любого файла, КАК ЕСТЬ СЕЙЧАС в Branch, в Root.
Но если я попытаюсь объединить Branch в Root, он выдаст сообщение о том, что существует конфликт, и что он покажет в Средство разрешения конфликтов:
File1, как это было после Changeset 2 в качестве источника (то есть версии файла, какой она была после того, как последняя Changeset не была объединена в Root), и
File1 в том виде, в котором он находится в Root в качестве цели (и это точно та же версия File1, что и у меня в последней версии Branch, и я хочу сохранить этот путь).
Кстати, не имеет значения, помечаем ли мы «Выбрать все изменения до ...» последней версией, набором изменений (используя самую последнюю), датой (сейчас), рабочей областью и т. Д. c .. или «Выбранные наборы изменений». «и затем мы выбираем все (конечно, ранее объединенные не появляются в любом случае здесь). Это какой-то способ сказать Source Control, что мы хотим объединить последнюю версию каждого файла в Branch в Root, независимо от того, была ли слияние ранее слито или нет? Имеет ли все это смысл или я что-то упускаю?