19

SVN 的长期用户,但在分支/标记方面相当缺乏经验,当我有时,我怀疑我并没有真正正确地使用它或充分发挥其潜力。

我有我的主干,我致力于添加新功能等。这个代码库用于多个网站,我们在每个项目的基础上从主干创建一个分支。

每个分支通常都有特定于该项目的修改,并且我们认为可以重用的任何内容都添加到主干中,并且可以在各个项目上打开和关闭该功能。

目前,当我们对主干进行更改并希望将这些修改放在提前的分支中时,我必须通过手动将某些修订合并到分支中并重新提交它们。不理想,而且容易错过东西。

所以,我的问题......有没有办法用主干的所有更改来更新我的分支,并像处理标准主干更新一样处理它们?

我已经看到将分支重新集成到主干,但是由于我在这种情况下使用分支的方式,这并不是我真正想做的事情。

4

1 回答 1

22

是的,有可能。基本上,您需要svn merge从分支的干净工作副本(没有本地修改的副本)运行:

$ pwd
/home/user/mybranch
$ svn status # Does not display anything
$ svn update # Make sure your local copy is up to date.
Updating '.':
At revision X.
$ svn merge url/to/repository/trunk
Updates, additions, deletions and conflicts.
$ #handle conflicts.
$ svn commit -m "Merging changes from the trunk".

请参阅SVN 书中的保持分支同步

第一次合并可能会引入很多冲突,特别是如果分支很久以前分叉,但后面的合并会顺利进行,特别是如果你经常合并。

于 2013-03-23T14:51:52.903 回答