我有一个具有以下结构的项目
^/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文件夹中。
麻烦在哪里?最重要的是:我该如何治愈它?
答案 0 :(得分:14)
麻烦在哪里?
是的,确切地说 - 以后合并子树总是混淆重新融合
最重要的是:我该怎样治愈它?
从/ project / trunk / src中删除mergeinfo
答案 1 :(得分:4)
以下是您可能想要查看的非常相似的主题:
Reintegrate can only be used if revisions were previously merged URL to reintegrate the source
尤其是来自this answer的Paul Whipp在我遇到同样的问题并且不想删除mergeinfo时帮助了我很多,因为这听起来像是一种解决方法而不是“真正的”修复
简而言之: 尝试手动合并该特定文件/文件夹的缺失信息(正如svn建议的那样)。对我来说就像一个魅力。
请参阅Pauls答案以获取相应的代码示例等。