解决SVN 从branch 合并到trunk时出现“Reintegrate can only be used“ 的问题

通常情况下我们会在working copy下通过右键菜单选择Merge,然后选择Merge from连接,将某个branch合并到当前工作目录,然后提交。

但是今天却出现了如下错误:

Reintegrate can only be used if revisions 5265 through 5689 were previously
 merged from
 https://192.168.XXX.XXX:XXX/svn/ProjectAliceVR/AliceOperationAgent/trunk to the
 reintegrate source, but this is not the case:
  AliceOperationAgent/branches/AliceAgent3.1b5264
    Missing ranges:
 /AliceOperationAgent/trunk:5283,5297,5325,5391,5489,5496,5514,5554,5591

原因可能是trunk目录下有几个目录是跟另一个项目共用的,是通过在属性中增加external链接导入到这个项目里的,而那个项目之前已经从分支合并到了trunk,导致这边的这个项目认为这几个目录已经合并过了,所以出现了如上面的错误,当然这也只是猜测。

网上也有一些解决办法,主要参考这个链接:

https://blog.csdn.net/qian_348840260/article/details/61923627?utm_source=blogkpcl8

和这个链接:

https://stackoverflow.com/questions/4737605/reintegrate-can-only-be-used-if-revisions-x-through-y-were-previously-merged-fro

我们的根本目的无非就是从brunch合并brunch中的修改到trunk,所以我想到的解决办法也许更直接一些:

1、通过svn show log,浏览brunch中的修改记录

2、按住Shift或Ctrl,结合鼠标选择要合并到trunk的修改记录

3、在选择的修改上右键单击鼠标,选择“Merge revisions to…”

4、弹出目录对话框“Select merge target”对话框,选择要将变更合并到哪个工作目录

5、合并就开始了

6、合并过程中会出现一些冲突而使合并中断,没关系,点击OK退出合并对话框

7、解决这些冲突,然后继续走上面的1~7步,直到完全合并为止

8、拷贝修改记录、提交变更

合并完成后就可以提交了,但是提交记录最好保留之前在分支中的提交记录。在选择要合并的变更时,对话框中其实已经提供了修订记录,可以直接拷贝过来,这个真的非常重要:

全选后粘贴到提交对话框即可。

总结:指定要合并的某一条或某几条变更,然后合并,这招既直接又可靠,值得推荐!

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据