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