2

情况是这样的:

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

今天我们想使用 reintegrate 功能将功能分支合并回主干。

问题是我们得到了很多(数千!):

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

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

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

谢谢您的帮助。

4

1 回答 1

1

这通常发生在以下场景中:

  1. 你的树干有两个类似的分支branch1并且branch2并行工作。
  2. branch1先创建后branch2创建。但是,branch2更改首先完成,然后重新集成到主干。
  3. 在重新整合之前branch1,我们需要做一个svn merge(不是svn merge --reintegrate)从主干到branch1并解决冲突。
  4. 在此期间,我们可能会获得一些文件夹,其中一些文件夹的属性也发生了变化,其中一些merge-info. 如果我们不要提交这些文件夹,因为这些只是merge-info属性更改,那么在reintegrate合并branch1.

如果这是您的情况,您可以尝试的解决方案是svn merge从您的主干branch1再次执行一次,您将再次merge-info在您的文件夹中更新您的属性并将其提交到branch1. 然后,使用svn merge --reintegratefrom branch1to trunk 重试。

于 2013-02-13T19:56:09.713 回答