移动源代码文件的SVN合并

时间:2012-09-07 17:55:23

标签: svn merge

我觉得我拥有SVN世界上最简单的用例:

  • 我在SVN的Test.java中有一个文件trunk
  • 我将trunk分支到dev-branch
  • 我将Test.java移至com/mycompany中的trunk文件夹。
  • 我在Test.java更改dev-branch
  • 我将dev-branch合并到trunk
  • 树冲突结果。

为什么,为什么,SVN不能处理这个?我们做错了吗?这感觉应该很容易,但我公司的每个工程师都受到了阻碍。

在这里寻找面向SVN的答案(不是'移动到git'等)。

1 个答案:

答案 0 :(得分:8)

在SVN中,移动是删除和添加。当您在分支中合并时,它将执行移动的添加部分,但由于冲突,它无法执行删除操作。您现在必须通过

手动解决冲突
  1. Test.java复制到com/mycompany/Test.java,覆盖旧版本。这解决了与该文件的冲突。
  2. 从旧位置删除Test.java文件。这是执行合并时SVN无法执行的更改集删除部分的手动方式。使用svn delete Test.java命令。
  3. 告诉SVN冲突已解决,您的工作目录是正确的svn resolve --accept working .最后的点是当前目录
  4. 告诉SVN Test.java文件的冲突也是通过svn resolve --accept working Test.java
  5. 解决的

    然后您可以提交合并后的版本,并且您又与存储库保持同步。