Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

由于之前是小分组开发,并没有做过SVN的merge,都是人肉merge代码,现在到大的开发组,才发现Eclipse上的SVN有两种merge方式。大概是因为版本不同吧。而其中一种网络上是很少见的,经过一段时间的研究,做一个总结。如下:

不论哪种方试合并,都是将其它的分支,合并到本地,然后再上传到SVN服务器,即本地合并到服务器上的branch/trunk或者其他branch合并到本地都是一样的流程。

比如:本地分支版本branch-version1,想要合并到branch-version2;那么就需要先把本地的版本切换为branch-version2然后再开始合并,把branch-version1的内容合并过来,然后提交branch-version2。

如果以下两种方式实在还不能合并,可以尝试最后一种补充的方式合并代码分支。最新发现,亲测有效

第一种方式:比较古老的一种合并方式

setp1:选中项目—>选Team->Merge然后弹出Merge的弹框

setp2:弹框如下:

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

我们看到这里有3个选项分别解释每个选项。

 1)1合并一个或多个其他版本到本。应用1的的步骤如下:

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码


2),2选项的,可以同时合并两个本地的分支,但是每一项只能选一个分支,如图

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码


3)3的选项即1,和2缺点的集合,即合并一个线上分支到一个本地分支,操作图如下:

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码


setp3:都选好以后点OK就行了。

另一种合并方式

setp1:与第一种完全一致

setp2:见到如下Merge弹框

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

你会发现这个选中的选项与上面介绍的3一致。就不多做赘述了,网上到处都是

---------------------------------------万恶的分割线--------------------------------------------------------

补充方法(2018/06/08)

其实我发现通过上面第一种方式,我确实无法很好的合并代码。但项目代码又是第一种方式从svn上拉下来的。那么就用一下方式合并代码。

step1:下载安装小乌龟,各个版本虽然不一致,但都相似,小乌龟下载地址:

TortoiseSVN-1.10.0.28176-x64-svn-1.10.0.msi

setp2: 在一个文件夹下,通过小乌龟拉你想要合并到的项目版本到本地,比如你想将分支1合并到分支2,则把分支2拉下来

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

step3:选中项目merge,选merge two different trees——>点next

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

step4:这是最重要的一步,看清楚,我曾在此被坑多次。这里要填两个分支svn地址,然而,From填的是分支2的地址,To填的是分支1的地址。即把分支1合并到分支2时,分支2为from分支1为to。

填好之后,点to里show log,选中最新提交的一个版本,然后点test merge。如果没有大量的版本冲突,就点merge就能合并。然后将本地merge后的代码commit到svn服务器,这样代码就merge完成了。最后在eclipse同步到本地的workspace就好了。

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

Eclipse SVN Merge(合并)的两种方式+TortoiseSVN(小乌龟)合并代码

----------------------------------------------------the end-------------------------------------------------