SVN merge的主干,分支的相互合并操作
本文只研究了 在本地如何进行主干,分支的相互合并 的操作:从主干到分支,从分支到主干。
本地客户端工具是tortoisesvn
测试用例。
1.本地添加test文件夹
在test文件夹下分别建立trunk,branches两个文件夹,建立好以后,提交到svn服务器端
此处的test文件夹的意义相当于一个单独的工程项目,
trunk用来存储主干代码文件,branches用来存储分支的代码文件,
2.在trunk文件夹下建立 Project1文件夹
然后随便新建一个txt文件,111.txt,里面写上内容11111111111,然后提交到svn服务器端。
此处project1,相当于工程test的主干源代码
3.新建分支
从trunk主干建立分支到branches, 第一次从主干创建分支的原理,就是把主干的代码复制一份 到分支文件夹。
在trunk下,对project1文件夹,右键菜单,-- branches/Tag
弹出面板,对To Path文件路径进行修改,指定到branches文件夹中,点击确定就可以。
合并成功以后。分支目前只是建立在svn的服务器端,本地还没有更新,对branches文件夹右键菜单 Update,就可以更新到分支代码
4.合并分支 到主干
对分支下的project1文件夹下的内容,进行修改,然后把分支的修改合并到主干,
对分支下的111.txt,随便输入新的内容,然后再新建一个222.txt文件夹,随便输入内容。
然后commit到svn服务器端
如果合并成功,那么branches下的project1的内容会全部合并到trunk文件夹下的project1中。
回到trunk文件夹中,对project1右键菜单,merge
在merge type中,选择第二个,第二个类型的功能更全面,可以合并任意两个分支
选择From版本, To版本
表示从trunk下的project1代码版本, 到branches下project1的版本的变化,都要更新到本地工作副本,trunk,project1中
然后next 一直到执行。执行完毕后,会发现trunk下,会多了222.txt,而且因为分支中111.txt会合并到主干111.txt内容,如果有冲突解决一下就行。然后commit
5.合并主干到分支。
这个场景是,如果主干做了很多更新,可能需要及时更新到分支上去。
在主干中建立新文件333.txt,随便输入内容,然后commit
回到branches文件夹中,对project1,右键菜单,merge,仍然选择第一个选项
一直到选择版本这个地方
注意其中From,To的版本路径,正好和从分支到主干是相反的。
执行完毕后,就会发现branches的project1多了333.txt文件,这样就完成了主干到分支的合并