我有一个项目,其结构如下:
^/project/trunk
^/project/branches/mybranch
当前 HEAD 的版本是 1048。该分支是从主干在 r523 中复制的。主干已经合并到我的分支中,结果为 r1048。关于 ^/project/branches/mybranch
的合并信息如下:
/project/trunk:523-1047
而 trunk 的 mergeinfo 中没有任何记录提到来自 ^/project/branches/mybranch
。实际上,trunk 和 branches 都保存了与 mybranch
平行的分支的合并信息,但这些合并信息在两个输出中看起来完全相同。
现在我进入我的 trunk 工作副本并尝试执行
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
这很奇怪,因为我的分支文件夹上的合并信息告诉我523-1047已经正确地从主干合并到了分支。那个子文件夹有什么问题?src
是一个显然存在于主干和分支中的目录。
我认为问题出在那里。如果我查看svn pg svn:mergeinfo ^/project/branches/mybranch/src@HEAD
命令下mybranch/src的合并信息,我什么都得不到。然而,如果我查看trunk/src (svn pg svn:mergeinfo ^/project/trunk/src@HEAD
),我得到以下结果:
/project/branches/mybranch/src:784
看起来似乎有人从分支中精选了一些内容合并到主干代码中,但是在主干代码文件夹中并没有出现这些内容。
问题出在这里吗?最重要的是:我该怎么解决它?
--reintegrate
选项从1.8版本以来就已经被“弃用”,而“子树合并”的当前行为必须与实际的SVN重新检查。 - Lazy Badger