2013-02-12 506 views
2

情况是这样的:SVN合并 - 重新合并失败的“丢失范围”

一个团队工作在长期功能分支(18个月)。定期将主干合并回此功能分支(每月开始,之后每两个/三个月)。

今天我们想要使用重新集成功能将特征分支合并回干线。

的问题是,我们得到了很多(成千上万!):

branches/feature/dir/file.foo 
Missing ranges: /trunk/dir/file.foo:94959 

但是,当我检查SVN的日志,我可以看到的范围94000-96500确实是在合并了一些时间过去。

这里发生了什么? 为什么svn抱怨“缺少范围”,如果它不是真的? 如果我在94000-96500上看到合并信息,会不会有一个原因会导致r94959丢失? 我该如何解决这个问题(正如我所说的,我们正在谈论成千上万的修订“失踪”)?

谢谢你的帮助。

回答

1

这通常发生在以下情形:

  1. 你的行李箱有一些两个分支像branch1branch2平行工作。
  2. branch1创建第一个,然后branch2创建。但是,branch2更改首先完成,那些重新集成到主干。
  3. 之后,在重新集成branch1之前,我们需要从中继线到branch1执行svn merge(而不是svn merge --reintegrate)并解决冲突。
  4. 而在此期间,我们可能会获得一些文件夹,更改了一些merge-info中的更新。如果我们不提交这些文件夹,因为这些文件夹只是merge-info属性更改,那么reintegrate合并branch1时可能会导致类似问题。

如果这是你的情况,你可以尝试的解决方案是再次从做你的躯干的svn mergebranch1,你会得到你的merge-info属性在您的文件夹再次更新和提交那些branch1。然后,从branch1到再试一次。

+0

无论如何做到这一点没有svn合并?我的重新集成源代码分支是一个发布分支,我现在不能进行svn合并,并将新东西加入到重新集成源代码分支中! – endless 2014-02-14 18:04:27

+0

@endless:重新整合是一个特定的操作,您可以在其中引入中继(例如http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html)。如果这不是你的情况,你需要做一个合并回主干,而不是重新整合。 – 2014-08-16 23:05:21