Svn 将主干合并到具有本地更改的分支
我在SVN中有一个分支,我想用主干中的新更改来更新它。我在这个分支中还有一些本地更改的文件。我现在还不想提交其中一些更改 如果我试图将主干中的更改合并到此分支中,则会出现错误:Svn 将主干合并到具有本地更改的分支,svn,Svn,我在SVN中有一个分支,我想用主干中的新更改来更新它。我在这个分支中还有一些本地更改的文件。我现在还不想提交其中一些更改 如果我试图将主干中的更改合并到此分支中,则会出现错误: Error: Cannot merge into a working copy that has local modifications 有没有办法在服务器上远程将主干合并到分支中,这样我以后就可以正常更新分支?没有。您必须在工作副本上完成合并过程,解决潜在冲突,然后提交 但是工作副本可能与您当前正在处理的工作副本不同
Error: Cannot merge into a working copy that has local modifications
有没有办法在服务器上远程将主干合并到分支中,这样我以后就可以正常更新分支?没有。您必须在工作副本上完成合并过程,解决潜在冲突,然后提交 但是工作副本可能与您当前正在处理的工作副本不同:只需将分支重新签出到新目录,在此新目录中进行合并并提交。强烈建议您使用工作目录的最新副本进行合并 然而,如果你想打破这些基本规则,朝自己的脚开枪,Subversion会为你提供手段和子弹:
$ svn merge --force --allow-mixed-revisions $repo_url
--allow mixed revisions
参数将允许合并,即使工作副本中存在混合修订。--force
参数将允许您合并,即使存在本地更改
实际上,在一些情况下,使用
--force
可能是一个好主意,但我想不出任何理由支持--允许混合修订
不幸的是--force不适用于--reintegrate--reintegrate标志完全改变了合并的工作方式。合并从三方合并更改为仅双向合并。主要目的是强制您正在处理的开发流与您正在合并的开发流相匹配。您不能使用混合修订,因为它没有任何意义,并且您必须有一个干净的签出。较新版本的Subversion客户端尝试查看合并是否为重新整合合并,并消除了对--reintegrate
标志的需要。这对我很有效。合并到一个干净的签出、提交中,然后使用本地更改在分支上运行更新。