Объединение ветки в магистраль
У меня возникла особая проблема с 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)>