SVN中合并(Merge)操作简介-01
admin 2019-04-21 14:49:09 1259人已围观
SVN开发中经常会使用到代码合并(Merge)操作,我这里用我自己喜欢的方式来讲解一下SVN代码合并(Merge)操作,我一般喜欢在分支上开发,让主干保持最新的代码发布;当然也有人喜欢在主干上开发,每个阶段会拉取一个分支(Branch)用来发布,其实都大同小异,没必要做过多的纠结。
我这里用一个测试的SVN目录并且不用开发工具的情况下来做讲解,先准备好主干(/trunk)和分支(/branches/dev-v1.0),此时主干和分支中的代码CodeDemo这里面的代码是完全一样的。我们假设A和B两个团队都有拉取分支分别开发不同的模块,A团队先开发完并且合并提交了一个testA.jsp到主干的CodeDemo\WebRoot\中,同时修改了index.jsp文件。B团队在他们的分支branches\dev-v1.0\CodeDemo\WebRoot中新增了testB.jsp,修改了公共文件index.jsp。在这种前提下B团队开始将他们的分支 (/branches/dev-v1.0) 合并到主干(/trunk)中。
第一步、右键目标文件夹(主干/trunk),即需要“合并到”的文件目录,选择TortoiseSVN->Merge… 如下图:
第二步、在弹出框中选择meger type:
第三步、先默认选择:Merge a range of revisions,点击Next,打开如下窗口:
如上,URL to merge from:点击输入框右侧 … 按钮,选择包含所做修改的文件夹(例中为 branches/dev-v1.0)
Revision range to merge:选择需要合并的修改版。
all revision 所有还没有合并的版本
specific range: 指定范围的修改版(推荐),可以单个svn版本,比如16,也可以是多版本,比如10-16或者逗号分隔10,15,16,这样会把10,15,16的修改 都合并到trunk,可以通过打开Show log对话框,根据提交日志来选取不同的版本.
注意:我这里实际选择的是: all revision,specific range,仅将指定版本的修改合并到目标文件夹。比如对branches/dev-v1.0做了多次修改,新增了testB.jps,生成svn修订版13,2次修改了index.jsp的内容,生成svn修订版14,16,那如果specific range只选择16,那么对15中的修改将不会被合并到trunk
第四步、点击上图的中Next查看合并选项(Meger options),如下图:
注意:如上,点击Test merge,查看能否正常合并。如果有冲突则会提示。最后点击Merge合并。合并仅仅是合并到本地文件夹目录,所以合并完成后,记得要Commit提交到SVN。
第五步、Merge,这里需要注意的是上面我们已经test指导会有冲突;如下图:
解决冲突回到本地目录使用svn提交完成即可。