SVN分支与合并问题专家大讲堂

本节和大家学习一下SVN分支与合并的相关内容,主要介绍一下合并以及SVN合并分支应注意的问题,欢迎大家一起来学习SVN分支与合并方面的知识。

SVN分支与合并

合并

合并包含两点,首先两个版本库树比较,然后将区别应用到本地拷贝。
这个命令包括三个参数:初始的版本树(通常叫做比较的左边),最终的版本树(通常叫做比较的右边),一个接收区别的目标拷贝(通常叫做合并的目标)。
一旦这三个参数指定以后,两个目录树将要做比较,比较结果将会作为本地修改应用到目标工作拷贝,当命令结束后,结果同你手工修改或者是使用svnadd或svndelete没有什么区别,如果你喜欢这结果,你可以提交,如果不喜欢,你可以使用svnrevert恢复修改。

合并的工作是把主线或者分支上合并范围内的所有改动列出,并对比当前副本的内容,由合并者手工修改冲突。如果当前工作副本是主线的,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主线上的改动

(1)主干合并到分支

看一下SVN分支与合并中主干如何合并到分支。如果是需要将主线的改动合并到分支上,需要在分支的工作副本下进行合并,合并的范围是需要从主线上上次合并的版本到当前主线上最新的版本,如果主线和分支都修改了相同的文件,合并后会出现冲突,然后解决冲突,如果主线修改但是分支没有修改,则主线上合并的变更内容会增加到当前副本中,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号

(2)分支合并到主干

如果是需要将分支的改动合并到主线上,需要在主线的工作副本下进行合并,合并的范围是需要从分支上上次合并的版本到当前分支上最新的版本,合并后会出现冲突(冲突的前提如上种情况),然后解决冲突,提交,如果是第一次合并,则起始版本号是上次建立分支的版本号

SVN分支与合并中合并分支时很关键的一点

在使用TortoiseSVN对Subversion进行分支合并时,Merge界面上有两个选项:From和To。这两个选项应该如何设定呢?
对于合并的这操作,Subversion上对其有如下的解释:

引用
迷惑的主要原因是这个命令的名称,术语“合并”不知什么原因被用来表明分支的组合,或者是其他什么神奇的数据混合,这不是事实,一个更好的名称应该是svndiff-and-apply,这是发生的所有事件:首先两个版本库树比较,然后将区别应用到本地拷贝。

这个命令包括三个参数:
初始的版本树(通常叫做比较的左边),
最终的版本树(通常叫做比较的右边),
一个接收区别的工作拷贝(通常叫做合并的目标)。
一旦这三个参数指定以后,两个目录树将要做比较,比较结果将会作为本地修改应用到目标工作拷贝,当命令结束后,结果同你手工修改或者是使用svnadd或svndelete没有什么区别,如果你喜欢这结果,你可以提交,如果不喜欢,你可以使用svnrevert恢复修改。还有更详细的说明:

svn

相关推荐