2011-09-03 142 views
1

从树干合并到SVN树中的开发分支中时遇到问题。解决从树干合并到svn分支的问题

该项目的历史是这样的。它从一个单一的中继开始。关于修订版207,第一个分支已创建。然后,在修订版331中,感兴趣的分支从干线分离出来。

我们现在处于修订版本384. 331之间的大部分更改都是在感兴趣的分支上完成的,但有一部分已经在主干上独立完成。

为了使树枝与树干保持一致,我想从树干合并到树干中。所以我正好这样做:

svn merge ^/trunk . 

但是,我发现所有的冲突方式都出现了。我可能会理解一些冲突,但树中的几乎所有目录和文件都受到影响。

更糟糕的是,大多数这些声称的冲突实际上是致力于207和331之间的干线的变化,因此已经纳入分支,因为分支从干线分离。

更糟糕的是,一些假定的冲突是树冲突,涉及到文件被删除或重命名,再次介于207和331之间。因为它们不再存在于分支上,在那里存在,我看不出任何方法来解决问题。

修复很复杂,因为对于几乎所有的文件来说,分支都是正确的,所以合并进来,然后接受分支副本,我没有任何提交,所以服务器从来没有得到合并提示事实上已经进行了。

我已经试过几件事情来解决它:

svn cleanup 

在我看来,这并没有做任何事情有关。

svn checkout ^/branches/branch-of-interest new-local-copy-of-branch-of-interest 

问题仍然存在于结帐的新副本中。

svn merge --record-only -r207:331 ^/trunk . 

有趣的是,所谓的“仅记录”合并也试图改变我的本地副本中的文件!

svn merge ^/trunk . 

此产生的矛盾和冲突树的一大堆,即使我用战斗记录仅合并,精心解决它(只记录合并)应用的更改。

我还应该说,当我开始,我的客户正在运行1.6.17和1.4.6服务器。但是,服务器已经升级到1.6.17,问题依然存在。

有没有什么办法的人已经找到了解决这个问题呢?一个做了充分的合并和解决文件之一将是令人难以置信的耗时,而在这一点 - 由于显而易见的原因 - 我甚至不有信心,下一次我的SVN不会只是尝试在拉同样的事情我一遍又一遍。

+0

您可能会通过日志查看干线上的奇怪事情。我看到一个类似的问题,一旦移除了主干,然后通过合并来恢复。 –

+0

谢谢约翰。实际上,我怀疑这可能是因为SVN存储库数据库仍然是1.4格式,因此无法跟踪合并。我已经联系了回购维护者,要求他升级它。我会看看如果解决了这个问题。 – Valtandor

回答

0

事实证明,这个问题在与存储库相关联的数据库版本奠定。即使在客户端和服务器已升级到最新版本之后,数据库仍然是旧格式,没有跟踪合并。

升级到最新的数据库版本解决了问题,并允许我合并,没有麻烦。特别是,我们在托管服务器和回购的计算机上使用这些命令:

svnadmin upgrade /path/to/repository 
svn-populate-node-origins-index /path/to/repository