出处:https://blog.csdn.net/shengqianfeng/article/details/79203156
http://www.cnblogs.com/sanxiong/p/3802360.html
结合了这两篇博客的内容
要想将branches合并到trunk, 必须先要切换到trunk,(当然,branches必须要先提交)
1.branches切换到trunck很easy,如下图,在工程上右键–>team–>切换
2.弹出的对话框, 至URL中选择trunk中工程的路径, 然后点击 OK 即可
3.如果使用的是SVN的Eclipse插件,那么要合并的话,首先要在工程上 右击–>Team–>合并
合并根据目标不同分为2种:
1、分支合并到主干:主要用在修复完生产BUG,并上线之后。需把改动的代码合并到主干上。
2、主干合并到分支:公用的逻辑改动,需反映到所有并行的分支上。
注意:合并是要在目标目录上进行操作的,如:分支合并到主干(主干为目标),需切换到主干上操作合并功能,主干合并到分支(分支为目标),需切换到分支上进行操作。
分支合并到主干的具体步骤:
1、主干目录右键选择合并
出现以上6个合并选项,
第一个选项:合并指定的版本,可以是从分支合并到主干,也可以是主干合并的版本,主要作用把分支的部份修改合并到主干上。
第二个选项:复兴分支,这里会把分支上所有的需改都合并到主干上。如果只想合并修改的一部分,并适合这项。
第三个选项:将主干上的修改合并到分支。
第四个选项:2个不同的分支合并,但其实也可以是分支和主干的合并,只要from选择为主干就行。
通常选择第一项或第四项进行操作,这里需要注意的是:
这里其实就是比对TO版本和FROM版本的差异,并把差异合并到TO的当前版本(head版本)中去。
注:如果要把分支所有的修改合并到主干上,FROM需要选择主干创建见分支时的版本号,TO选择分支最新版本(head版本)就行了。
如果FROM也选择主干head版本,TO也选择head版本,就会把所有分支与主干不同的差异覆盖到当前主干上来。造成主干的文件被分支覆盖。
合并当中出现:
no uncommited modified :表示当前版本还有没有提交的文件,如果不需要提交就选择revert.
working copy at a single version:表示当前目录没有从SVN服务器更新最新的版本。update下后在操作就行了。
4.点击”合并”之后,如图所示, 选择 Merge a range of revisions
5.点击下一步,在 Merge From填写branches中工程路径
6.点击下一步,弹出这个对话框是问你要怎么处理冲突,选择第一个: Mark as conflicted, I will deal it later,
意思就是, 标记冲突,稍后再解决. 然后点击OK, 如果有多个冲突, 这个对话框会弹出多次,同样操作即可.
也可以勾选下边的, Apply to all text conflict(应用到所有冲突), 这样会弹一次.
7.大功告成! 有冲突就解决冲突, 解决完冲突再提交. 没冲突就合并完毕.
若存在冲突解决办法,个人建议使用最后一种解决冲突
Mark as conflicted. I will deal wiht it later. --标记冲突,合并到主干解决冲突
Resolve the conflict by using my version of the file. --直接用主干的文件覆盖,分支修改无效
Resolve the conflict by using the incoming of the file. --直接用分支修改覆盖主干,以分支为准
Let me edit the file with conflict markers inserted. --直接编辑冲突,编辑完保存,选择yes保存。
Launch a graphical conflict resolution editor.--直接比对文件,修改冲突,点击保存。选择yes解决冲突