情况如下:
一个团队致力于长期专题分支(18个月)。定期将主干合并回该功能分支(每个月初,稍后每两三个月)。
今天,我们想使用重新整合功能将功能分支合并回主干。
问题是我们得到了很多(数千!):
branches/feature/dir/file.foo
Missing ranges: /trunk/dir/file.foo:94959
但是,当我查看svn日志时,我可以看到94000-96500范围确实在过去的一段时间被合并了。
这里发生了什么?如果这不是真的,svn为什么抱怨"缺少范围"?如果我在94000-96500上看到合并信息,r94959会丢失吗?我该如何解决这个问题(正如我所说,我们谈论的是"丢失"的数千个修订)?
谢谢你的帮助。
这通常发生在以下场景中:
- 您的主干有两个分支,如
branch1
和branch2
,它们并行工作 - 先创建
branch1
,然后创建branch2
。但是,branch2
的更改首先完成,然后将这些更改重新整合到主干中 - 之后,在重新整合
branch1
之前,我们需要做一个从主干到branch1
的svn merge
(而不是svn merge --reintegrate
),并解决冲突 - 在此过程中,我们可能会得到一些文件夹,这些文件夹的属性也发生了更改,并在一些
merge-info
中进行了更新。如果我们不提交这些文件夹,因为这些只是merge-info
属性更改,那么在branch1
的reintegrate
合并过程中可能会导致类似的问题
如果这是您的场景,您可以尝试的解决方案是再次从主干到branch1
执行svn merge
,您将再次在文件夹中更新merge-info
属性,并将其提交到branch1
。然后,使用从branch1
到中继的svn merge --reintegrate
重试。