Получение неожиданного списка изменений при svn слиянии папок разных веток - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть 2 ветки accos_2.1.3b_ludz и accos_2.1.3_ludz. Я внес следующие изменения в папку / WebcContent / WEB-INF / lib accos_2.1.3b_ludz: enter image description here enter image description here

Они просто в основном обновляют более новую версию файла JAR. Я пытаюсь объединить изменения в ветке accos_2.1.3

Использование команды svn merge с --dry-run дает мне следующее:

 C:\Users\linhou\Teamforge\accos_2.1.3b_ludz\WebContent\WEB-INF\lib>svn merge ^
 More?  ^^/Accos/branches/ludwig/accos_2.1.3b_ludz/WebContent/WEB-INF/lib ^
 More? ^^/Accos/branches/ludwig/accos_2.1.3_ludz/WebContent/WEB-INF/lib --dry-run
--- Merging differences between repository URLs into '.':
A    hibernate-core-4.2.18.Final.jar
A    antlr-2.7.6rc1.jar
D    antlr-2.7.7.jar
D    hibernate-core-4.2.21.Final.jar

Я не понимаю, почему hibernate-core.4.2.18.Final.jar помечен A вместо D, а hibernate-core-4.2.21. Final.jar помечен D A. Учитывая, что accos_2.1.3b является источником, а accos_2.1.3 является целью, поэтому я ожидаю, что A s и D s будут взаимозаменяемы.

1 Ответ

0 голосов
/ 02 мая 2018

Как описано здесь , ваша командная строка имеет следующий формат:

svn merge SOURCE1 SOURCE2 [TARGET_WCPATH]

Это создает различия, применяемые для перехода с SOURCE1 до SOURCE2.
Таким образом, в вашем случае это создает различия, применяемые для перехода от ответвление accos_2.1.3b_ludz до ответвление accos_2.1.3_ludz. То, что вы наблюдали, полностью соответствует этому объяснению.

Для получения ожидаемого результата вам просто нужно инвертировать аргументы следующим образом:

svn merge .../accos_2.1.3_ludz/... .../accos_2.1.3b_ludz/... --dry-run
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...