объединить 2 ветви SVN вместе - PullRequest
5 голосов
/ 09 декабря 2010

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

В папке соединительных линий нет кода, поэтому я не знаю, следует ли обновлять ствол до кода и обновлять вторую ветвь, ИЛИ, если есть способ просто обновить одну ветвь другой.Моим последним средством будет просто обновить код вручную.

Есть идеи, какой из них лучший?Я делаю все из терминала.

Ответы [ 2 ]

7 голосов
/ 09 декабря 2010

Нет Не обновлять вручную.Конечно, сложность будет зависеть от того, насколько близки эти ветви.

Вы всегда можете внести изменения из одной ветви в другую.Допустим, у вас есть две ветви с именами branch1 и branch2, и вы хотите объединить branch2 с branch1.

Допустим, вы находитесь в branch1 (сначала попробуйте выполнить пробный прогон, чтобы убедиться, что это приводит к конфликтам)

svn merge -r LAST_MERGED_REVISION:HEAD_REVISION --dry-run url/to/branches/branch2 .

svn merge -r LAST_MERGED_REVISION:HEAD_REVISION url/to/branches/branch2 .
svn status | egrep '^C|^.C' <---Manual intervention is required for conflicts
svn update
svn ci -m "Merge changes from branch2"

И вы можете закрыть ветку2

svn merge --reintegrate url/to/branches/branch2
svn update
svn ci -m "Merged branch2 to branch1"

Это может не сработать, если ветви сильно расходятся.

1 голос
/ 09 декабря 2010

В зависимости от того, какую версию Subversion вы используете, я рекомендую использовать svnmerge или встроенную поддержку отслеживания слияния в Subversion . В любом случае, вполне возможно объединиться из одной ветви в другую без использования магистрали (при условии, что ветви имеют некоторого относительно близкого предка).

...