我试图详细了解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
甚至没有被触摸。
我在这里不明白什么?
答案 0 :(得分:1)
实际上,当您运行命令行svn merge test@230553 test@230554
时,您正在尝试将对版本230554所做的修改应用于本地文件。这里的问题是,默认情况下,SVN不会如果已经对祖先进行了相同的修改,请执行合并。因此,您必须使用选项--ignore-ancestry
以更友好的方式询问它。此行应工作:
svn merge test@230553 test@230554 --ignore-ancestry