2011-04-18 152 views
3

我创建了一个分支(修订版9002),并且继续对其进行了几个星期的更改。我也从合并树干变成有规律,没有问题的分支,使用Subversion - 将分支合并到主干

svn merge -rXXXX:HEAD

其中XXXX是我先前的合并创造了一个后修订。到现在为止还挺好。

我现在不得不将分支合并到主干中,并且遇到重大困难。我试过以下SVN: Merging a Branch into Trunk,但使用

svn merge -r9003:head http://path/to/my/branch 

,当我得到大约20棵树冲突,其次是svn: Attempt to add tree conflict that already exists,并且该过程停止。

这是正确的方法吗?有任何想法吗?

我在树枝上做的最后一件事是合并树干,所以分支基本上是我的新干线。

+0

什么版本SVN是您的客户端和服务器上运行? – ChrisH 2011-04-18 14:56:21

回答

2

如果你已经合并了一切从主干到您的分支,只是想推销到主干那么它可能比较容易只是移动目录在仓库中

svn move http://path/to/trunk http://path/to/branches/old-trunk 
svn move http://path/to/branches/my-new-trunk http://path/to/trunk 

注意,因为你现在已经复制到躯干,然后svn log --stop-on-copy(在龟默认值)将停止在这一点 - 你需要把该标志的就看到更靠后。

否则,我认为您必须像以前一样使用svn merge,以小批量修订而不是一次性修复,并随时解决各种冲突。

1

我总是使用--reintegrate标志,当我合并分支回树干。因此,当在中继线的检出副本的目录中时,请尝试svn merge --reintegrate ^/path/to/branch。另外,我不确定为什么您使用svn merge -rXXXX:HEAD而不是从检出的中继副本的目录中只使用svn merge ^/trunk。这就是我一直这样做,虽然我经常错了:)

+0

不幸的是,存储库不支持--reintegrate。 – 2011-04-18 14:41:30

+0

@PerHolmäng:啊,那么无视:)你运行的是什么版本的颠覆? – William 2011-04-18 14:48:38

1

要合并的分支,你必须合并分支和的差值(即手动--reintegrate)。

所以

svn merge http://path/to/[email protected] http://path/to/[email protected] . 

其中N是你合并到分支主干的最后版本。考虑到您所做的最后一件事是将分支与中继同步,您可以使用HEAD

在说你的方式告诉SVN对合并分支排除那些从主干来所做的一切变化。

而且,当你想你的分支与主干同步,做svn merge http://path/to/trunk .

相关问题