2010-07-15 113 views
2

我一直在SVN分支上工作一段时间。定期地,我将主干中的更改合并到我的私人分支中,这样我就可以使用描述为here的过程来获取其他人的更改。这似乎很好。在SVN分支之间合并

现在我准备好将我的更改合并到主干中。我试图通过合并从分支点开始并以分支的HEAD结束的修订范围来完成此操作。但是当我尝试这样做时,SVN报告了许多树冲突。它看起来像添加到主干(并合并到我的分支)的每个文件都有冲突。

我希望通过从树干定期合并到我的分支,合并在相反的方向将是微不足道的。显然不是。我究竟做错了什么?

回答

3

你需要re-integrate这个分支。 另外,当你将树干合并回你的分支时,你应该已经与祖先合并了,否则SVN不知道修改了什么。

+0

此链接非常有帮助。由于我正在使用1.5以前的SVN服务器,因此我需要使用完美工作的“2-URL”合并命令。谢谢! – 2010-07-18 00:47:12

+0

如果可能的话,从1.4升级 - 合并支持在1.6(甚至1.5)中大大增加,这将更加轻松。 – 2010-07-19 11:24:43

1

您需要将分支重新整合到干线中。从干线检查开始,然后你应该合并(如果你使用TortoiseSVN则重新合并)分支到干线。

在合并过程中您很可能会遇到一些冲突。发生冲突并不意味着有问题。在提交回干线之前解决这些问题。

此外,它可能是你/服务器/存储库正在使用旧版本的SVN(前1.5),没有合并跟踪。这可能是冲突负载的来源,因为SVN不会知道您合并到您的分支中的所有修订版本,并会尝试将这些修订版本中的更改第二次合并到主干中。合并跟踪有助于SVN忽略已经在中继线上进行的分支更改。

0

假设您使用的是支持合并跟踪(v1.5或更高版本)的Subversion版本,您需要的魔法是“重新合并”。

SVN中有几种不同的合并方式,“重新合并合并”与您为了让分支保持最新而进行的“增量合并”不同。简而言之,增量合并(这是默认的合并类型)会在逐个修订版的基础上引入更改。如果您在重新进入主干时尝试其中一种合并,则会重新启用您在分支中进行的所有更改,并将所有发生在主干中的更改引入您的分支。这就是为什么你看到冲突。

SVN的书很好地解释了这一点;仔细阅读this section以获得更好的处理。