svn与--reintegrate合并抱怨缺少范围,但mergeinfo似乎是正确的

时间:2013-02-20 17:48:56

标签: svn svn-merge

我有一个具有以下结构的项目

^/project/trunk
^/project/branches/mybranch

当前HEAD是修订版1048.分支是从r523中的trunk复制的。 trunk已合并到mybranch,结果为r1048。 ^/project/branches/mybranch上的mergeinfo给出了

/project/trunk:523-1047

并且trunk的mergeinfo没有提及^/project/branches/mybranch的任何记录。实际上实际上,主干和分支都保持与mybranch平行的分支的mergeinfos,但是这两个mergeinfos在两个输出中看起来完全相同。

现在我进入我的干线工作副本并尝试发出

svn merge --reintegrate ^/project/branches/myproject

我收到一条错误消息:

svn: Reintegrate can only be used if revisions 523 through 1048 were previously merged from file:///home/svn/project/trunk to the reintegrate source, but this is not the case:
  project/branches/mybranch/src
    Missing ranges: /project/trunk/src:523-1047

这很奇怪,因为我的分支文件夹上的mergeinfo告诉我523-1047已经从主干到分支正确合并。这个子文件夹的处理是什么? src是一个显然存在于trunk和branch中的目录。

我认为这是有些可疑的地方。如果我通过svn pg svn:mergeinfo ^/project/branches/mybranch/src@HEAD查看mybranch / src的mergeinfo,我什么都没得到。如果我查看trunk / src(svn pg svn:mergeinfo ^/project/trunk/src@HEAD),我会得到

/project/branches/mybranch/src:784

所以好像有人在那里从一个分支到一个树干做了一个樱桃挑选。但是,这不会出现在trunk文件夹中。

麻烦在哪里?最重要的是:我该如何治愈它?

2 个答案:

答案 0 :(得分:14)

  

麻烦在哪里?

是的,确切地说 - 以后合并子树总是混淆重新融合

  

最重要的是:我该怎样治愈它?

从/ project / trunk / src中删除mergeinfo

答案 1 :(得分:4)

以下是您可能想要查看的非常相似的主题:

  

Reintegrate can only be used if revisions were previously merged URL to reintegrate the source

尤其是来自this answerPaul Whipp在我遇到同样的问题并且不想删除mergeinfo时帮助了我很多,因为这听起来像是一种解决方法而不是“真正的”修复

简而言之: 尝试手动合并该特定文件/文件夹的缺失信息(正如svn建议的那样)。对我来说就像一个魅力。

请参阅Pauls答案以获取相应的代码示例等。