SVN 分支主干的合并

一、主干合并到分支

首先,在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步,然后在/branches /MyProject上右键,依次选择”TortoiseSVN” -> “Merge…”,在弹出的窗口中选择第一项”Merge a range of revision”,这个类型的Merge适用于将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上。

SVN 分支主干的合并

点击next后,出现如下窗口:

SVN 分支主干的合并

由于是要从trunk合并到branch,理所当然这里的”URL to merge from”应该填trunk的路径,”Revision range to merge”很好理解,就是你要将trunk的哪些revision所对应的变化合并到branch中,可以是某一连串的 revision,比如 4-7,15-HEAD,也可以是某个单独的revision号(可以点击Show log窗口后选择)。当然我们也可以选择 all revisions 表示所有修订。点击next后出现下图:

SVN 分支主干的合并

在这里只需保留默认设置即可。在点击Merge按钮前你可以先Test merge一把,看成功与否,以及merge的详细信息。点击Merge按钮后trunk所做的修改将同步到branch中。

至此,branch 已经完全和 trunk 同步,合并发生在本地 working copy,只要你不提交就不会影响到 repository。所以我们和合并操作后,处理好冲突(如果存在冲突)后,将代码提交到 repository。

二、分支合并到主干

在/trunk/MyProject上右键(注意是在主线的目录上右键),依次选择”TortoiseSVN” -> “Merge…”。 
后续操作和 “分支合并到主干” 一样,其实你可以把主干也理解为一个分支 “主分支”。 
因为我们把分支合并到分支一般是分支开发完毕后,所以在一般选择 all revisions ,当然你如果只想合并一部分到主干,一样可以选择 specific revisions 指定版本号合并。