15

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

  • 我有一个文件,Test.javatrunkSVN 中。
  • 我分支trunkdev-branch.
  • Test.java进入. com/mycompany_trunk
  • 我换Test.javadev-branch
  • 我合并dev-branchtrunk.
  • 树冲突结果。

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

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

4

1 回答 1

8

在 SVN 中,移动是删除和添加。当您在分支中合并时,它会执行您移动的添加部分,但由于冲突它无法执行删除。您现在必须手动解决冲突

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

然后您可以提交您的合并版本,您将与存储库重新同步。

于 2012-09-07T21:34:46.180 回答