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 с настройками по умолчанию отклонит эту разницу

Другие вопросы по тегам