SVN Слияние новой линии от транка к конфликту ветвей
При объединении ревизий из магистрали в ветвь я стремлюсь добиться следующего:
Редакция 1 (это также версия ветки):
First Line
Редакция 2:
First Line
Second Line
Редакция 3:
First Line
Second Line
Third Line
Выполнив следующую команду в ветке:
svn merge -c 3 [trunkurl]
Я ожидаю получить следующий результат
First Line
Third Line
Но вместо этого я получаю конфликт деревьев. Эта техника, кажется, отлично работает для добавления новых строк в середине файлов, но не в конец файла.
1 ответ
У вас было плохое и неправильное ожидание, но Subversion (без конфликта дерева, только с конфликтом файлов / конфликт дерева здесь невозможен /) выдал правильную ошибку
Когда слияние Subversion пытается / до некоторой степени, настоящий алгоритм слияния намного сложнее / применяет различия (унифицированные, с контекстом по умолчанию = 3, AFAIR) из исходного дерева для затронутых ревизий к цели. Если вы попытаетесь увидеть различие вашей головы, вы увидите
Index: file.txt
===================================================================
--- file.txt (revision 4)
+++ file.txt (revision 5)
@@ -1,2 +1,3 @@
First Line
Second Line
+Third Line
но этот контекст не существует в отрасли, таким образом - даже обычный patch
с настройками по умолчанию отклонит эту разницу