Объединение ветки в магистраль

У меня возникла особая проблема с SVN merge. Я хочу объединиться из ветки dev в багажник. У нас есть несколько ветвей dev, которые одновременно обрезают туловище.

Я объединяю одну из этих ветвей в туловище с помощью этой команды:

svn merge trunk branch_1

Я вижу изменения, которые не являются частью этой ветки, и сливаются с ней. Что я делаю неправильно?

Версия SVN:

Клиент командной строки Subversion, версия [email protected]

Ответ 1

Ваш синтаксис svn merge неверен.

Вы хотите проверить рабочую копию trunk, а затем использовать опцию svn merge --reintegrate:

$ pwd
/home/user/project-trunk

$ svn update  # (make sure the working copy is up to date)
At revision <N>.

$ svn merge --reintegrate ^/project/branches/branch_1
--- Merging differences between repository URLs into '.':
U    foo.c
U    bar.c
 U   .

$ # build, test, verify, ...

$ svn commit -m "Merge branch_1 back into trunk!"
Sending        .
Sending        foo.c
Sending        bar.c
Transmitting file data ..
Committed revision <N+1>.

Более подробную информацию см. в главе в книге SVN о слиянии.


Обратите внимание, что в то время, когда оно было написано, это был правильный ответ (и был принят), но все изменилось. См. Ответ topek и http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate

Ответ 2

Если ваш рабочий каталог указывает на соединительную линию, вы можете объединить свою ветку с помощью:

svn merge https://HOST/repository/branches/branch_1

обязательно выполните эту команду в корневом каталоге вашей внешней линии

Ответ 3

Сделайте обновление svn в соединительной линии, обратите внимание на номер версии.

От туловища:

svn merge -r<revision where branch was cut>:<revision of trunk> svn://path/to/branch/branchName

Вы можете проверить, где ветвь была вырезана из ствола, выполнив журнал svn

svn log --stop-on-copy

Ответ 4

Синтаксис неправильный, он должен быть

svn merge <what(the range)> <from(your dev branch)> <to(trunk/trunk local copy)>