如何理解svn合并?

时间:2011-06-20 08:46:45

标签: svn merge

我修改了分支中的test.txt,并有六个已提交的修订版,分别为1,2,3,4,5和6。

现在,我想将这些修改从分支合并到主干,我使用以下命令:

$cd trunk-working_copy
$svn merge -r 2:6 http://XXX/branch/test.txt@1,

如何理解这个命令,下面的内容是否正确?

r2 diff with r1 ,then apply
r3 diff with r1 ,then apply
r4 diff with r1 ,then apply
r5 diff with r1 ,then apply
r6 diff with r1 ,then apply

2 个答案:

答案 0 :(得分:1)

该命令正在将分支的版本2到6的更改合并到 trunk

如果您在svn st中执行trunk-working_copy,则会注意到已修改的文件。然后,您需要执行svn commit以使更改实际显示在主干中。

详细解释了svn中的基本合并here

答案 1 :(得分:1)

因为我不能把它作为评论

The Key Concepts Behind Branching

您应该记住本节中的两个重要课程。首先,Subversion没有分支的内部概念 - 它只知道如何制作副本。复制目录时,生成的目录只是一个“分支”,因为您将该含义附加到该目录。您可能会以不同的方式考虑目录,或者以不同的方式对待它,但对于Subversion来说,它只是一个恰好带有一些额外历史信息的普通目录。

其次,由于这种复制机制,Subversion的分支作为存储库中的普通文件系统目录存在。这与其他版本控制系统不同,其中分支通常通过向文件集合添加额外的“标签”来定义。分支目录的位置与Subversion无关。大多数团队遵循将所有分支放入/ branches目录的约定,但您可以自由发明任何您希望的策略。