SVN合并重新集成缺少的范围,但没有合并

Rya*_*yan 8 svn merge svn-reintegrate branching-and-merging

这是谜语:

C:\code\trunk> svn merge --reintegrate http://svn.e.com/repos/branches/lih --accept postpone --dry-run
svn: E195016: Reintegrate can only be used if revisions 11430 through 12384 were previously merged from http://svn.e.com/repos/trunk to the reintegrate source, but this is not the case:
  branches/lih
    Missing ranges: /trunk:11902
Run Code Online (Sandbox Code Playgroud)

但是,如果我进入分支的目录并尝试合并该范围,则无需合并!

C:\code\branches\branch> svn merge -r 11901:11902 http://svn.e.com/repos/trunk --accept postpone --dry-run
C:\code\branches\branch>
Run Code Online (Sandbox Code Playgroud)

甚至svn merge -r 11898:11903没有显示任何合并.

现在我似乎无法将我的分支重新融入后备箱!请帮忙!

PS lih分支直到11906才创建.它从高速分支分支,从分支分支(高清已经合并回主干).

dew*_*ell 5

我刚刚碰到了类似的问题,其中的问题是后备箱有两次取消修改(即转发20865在trunk undid rev 20857).因此,当我第一次从主干到分支合并时,它没有为这对修订版本合并的内容,但是没有将它们包含在有问题文件的mergeinfo中.然后,当我尝试从分支到主干合并时,它反对这两个修订版本丢失了.

我的解决方案(在手动验证对相关文件取消修订后)是将两个修订中的每一个明确地合并到分支(通过svn merge ^/trunk -c 20857和svn merge ^/trunk -c 20865),提交,然后将分支合并回主干.第二次,进展顺利.这是Subversion 1.8.0(r1490375).

我之前能够解决类似的问题,只需使用--record -in来标记更改为在分支上正确合并,但是合并实际文件可能更安全(以防万一有不一样的更改)取消).

看起来像Subversion 1.8处理mergeinfo以取消对我的更改的方式中的错误.


Rya*_*yan 3

这似乎对我有用,但我不能声称理解它或保证这是解决我的问题的最佳方法。

首先,重要的是您的分支拥有主干的所有最新提交。因此,将其同步(从主干到分支进行合并)。

然后,您实际上可以通过在 trunk 目录中执行此操作来强制重新集成:( svn merge http://svn.e.com/repos/trunk/@REV http://svn.e.com/repos/branches/lih/ . --dry-run但将 REV 替换为最新修订版 #)。