小乌龟SVN合并分支到主干、合并主干到分支,工具操作

分支合并到主干

分支库中单元测试通过的源代码要合并到主干,例如有一个开发中的代码 branches -> dev 需要合并到主干 trunk。
步骤:
第一个步骤:在本地副本上进行操作,选择主干上的源代码文件,右键选择tortoiseSVN菜单,点击合并。(将trunk代码 拉回本地,checkout到本地。在trunk 代码上 使用merge)如图


第二个步骤:选择merge two different trees,如图,也可使用merge a range of revisions 但在报 from url must be ancestrally related to to url 错误的情况下选择使用第二种。


第三个步骤: 在from中选择 trunk 在to中选择 branches -> dev,由于是在trunk上把branches的代码合并过来,理所当然这里的”from”应该填trunk的路径,to选branches的路径。如图

第四个步骤:选择默认选项即可,建议合并merge时,使用test merge 来查看有多少冲突,如果冲突较多,可分多次合并,最后点击merge进行合并。合并成功后需要将主干(trunk)上合并过的文件提交到svn代码库,如图
- 图中各项的含义:
-ignore ancestry : 忽略根源
-ignore line endings : 忽略行结尾
-compare whitespaces : 比较空白字符
-ignore whitespace changes : 忽略空白字符的变化
-ignore all whitespaces : 忽略所有空白字符


第五个步骤:确定合并后的代码,将主干(trunk)上合并过的文件提交commit到svn代码库

主干合并到分支

1在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步,

2.在/branches /MyProject上右键,依次选择”TortoiseSVN” -> “Merge…”,

3.在弹出的窗口中选择第一项”Merge a range of revision”,这个类型的Merge适用于将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上。

 

4.点击next

这里的”URL to merge from”应该填trunk的路径,理解为 “从主干合并“ 到分支,”Revision range to merge”就是要将trunk的哪些revision所对应的变化合并到branch中

 5.点击next:

在这里只需保留默认设置即可。

在点击Merge按钮前你可以先Test merge一下,进行测试。

点击Merge按钮后trunk所做的修改将同步到branch中。

至此,branch 已经完全和 trunk 同步,合并发生在本地 working copy,只要你不提交就不会影响到 repository。

所以我们和合并操作后,处理好冲突(如果存在冲突)后,将代码提交到 repository。