0

在将主干的修订合并到分支时,我希望实现以下目标:

修订版 1(这也是分支版本):

First Line

修订 2:

First Line
Second Line

修订版 3:

First Line
Second Line
Third Line

通过在分支上执行以下命令:

svn merge -c 3 [trunkurl]

我期待得到以下结果

First Line
Third Line

但相反,我遇到了树冲突。这种技术似乎适用于在文件中间添加新行,而不是在文件末尾。

4

1 回答 1

0

你有错误的期望,但是 Subversion(没有树冲突,只有文件冲突/树冲突在这里是不可能的/)提出了正确的错误

当 Subversion 合并时,它尝试/在某种程度上,真正的合并算法要复杂得多/从源树应用差异(统一,默认上下文 = 3,AFAIR),以将受影响的修订版应用到目标。如果您尝试查看 HEAD 的差异,您会看到

Index: file.txt
===================================================================
--- file.txt    (revision 4)
+++ file.txt    (revision 5)
@@ -1,2 +1,3 @@
 First Line
 Second Line
+Third Line

但是这个上下文在分支中不存在,因此 - 即使是普通patch默认设置也会拒绝这个差异

于 2013-02-22T21:29:51.903 回答