为什么 svn merge 什么都不做?

Why doesn't svn merge do anything?

我正在尝试详细了解 svn merge 的工作原理。

我有一个文件 test 提交了两次修订:

在修订版 230553 中,它有一个字符 /(和换行符)

在修订版 235554 中,它有一个字符 $(和换行符):

svn diff -r 230553:230554 test
Index: test
===================================================================
--- test        (revision 230553)
+++ test        (revision 230554)
@@ -1 +1 @@
-/
+$

当前本地版本,改回/。现在,我希望如果这样做:

svn merge test@230553 test@230554

本地副本将更改为$。但是没有,什么也没发生,命令成功,没有抱怨,但是文件 test 甚至没有被触及。

我哪里不明白?

事实上,当您 运行 命令行 svn merge test@230553 test@230554 时,您正试图将您在修订版 230554 上所做的修改应用于您的本地文件。您的问题是,默认情况下,如果已经对祖先进行了相同的修改,SVN 不会执行合并。所以你必须用选项 --ignore-ancestry 以更友好的方式询问它。此行应该有效:

svn merge test@230553 test@230554 --ignore-ancestry