SVN 的长期用户,但在分支/标记方面相当缺乏经验,当我有时,我怀疑我并没有真正正确地使用它或充分发挥其潜力。
我有我的主干,我致力于添加新功能等。这个代码库用于多个网站,我们在每个项目的基础上从主干创建一个分支。
每个分支通常都有特定于该项目的修改,并且我们认为可以重用的任何内容都添加到主干中,并且可以在各个项目上打开和关闭该功能。
目前,当我们对主干进行更改并希望将这些修改放在提前的分支中时,我必须通过手动将某些修订合并到分支中并重新提交它们。不理想,而且容易错过东西。
所以,我的问题... 有没有办法用主干的所有更改来更新我的分支,并像处理标准主干更新一样处理它们?
我已经看到将分支重新集成到主干,但是由于我在这种情况下使用分支的方式,这并不是我真正想做的事情。
最佳答案
是的,有可能。基本上,您需要运行 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".
见 Keeping a Branch in Sync来自 SVN 书。
第一次合并可能会引入很多冲突,特别是如果分支很久以前 fork ,但后面的合并会顺利进行,特别是如果你经常合并。
关于使用分支的 SVN 策略,并将更改从主干合并到分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546751/