您现在的位置是:首页 >  云笔记 >  开发随笔 >  文章详情

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提交完成即可。



分享到:

编辑发布时间:2019-04-21 14:49:09