svn 分支合并
经过了多次的尝试,今天终于基本弄明白了Svn的合并。
TortoiseSvn1.5中关于合并有三个选项,说实在话,我只弄明白了最后一个选项的意思,好在最后一个选项也是最常用的,并且是可以包打天下的一个^_^。
首先考虑这么一个需求,为了Bug修改的工作,创建分支A,主干同时也在进行正常的开发工作,现在分支A的工作完成,需要将A上的修改合并到主干上,这应当是最经常使用的一种模式,下面分步骤说明合并过程。
第一步:将工作副本切换到主干上:这一步很重要,当前的工作副本的是要合并的目的地
第二步:在主干根目录文件夹上右键,如下图,选择最后一项
下一步:
这是最重要的一步,需要注意的地方有
1.起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,看起来不合理,其实细想却是合理的,这个是所谓的合并点,也就是分歧开始的地方)
2.结束URL:选择要合并的分支的URL,也就是所有的分歧所在。
3.起始和结束的版本:起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。
到这里,下面就顺理成章了,如果有冲突的话,手工解决冲突,提交就可以了。
我的理解:将分支合并到主干上,首先需要在主干的工作副本下进行,合并的范围是从主干的上次合并的版本开始(FROM)到分支上最新的版本结束(TO),如果是第一次合并,则从主干创建分支的版本开始,所以每次合并好做好说明,否则忘记了,下次再合并就有点麻烦,其实,应当尽量避免一个分支合并多次,分支的作用一般为了解决bug等,一旦bug对应结束了,分支的使命就结束了,以后再出现其他的问题,应当重新建立分支,这样就不会出现多次合并的问题了。
合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定和当前的工作副本的URL是相同的。
参考链接:http://www.uml.org.cn/pzgl/2009042410.asp