svn merge为什么不做任何事情?

时间:2018-08-11 19:25:41

标签: svn

我试图详细了解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甚至没有被触摸。

我在这里不明白什么?

1 个答案:

答案 0 :(得分:1)

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

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