SVN 不同的环境merge项目merge产生冲突以及解决冲突
通常开发中项目有三个目录:dev test trunk:
dev:进行开发,开发完成,把项目Merge到test下,测试环境下发布的是test下的项目。
测试通过,再把dev下的项目Merge到trunk下,生产发布的是trunk下的项目。
在合并项目的时候经常会产生冲突,解决冲突是必不可免的。
一 产生冲突
现在有一个项目,有一个trunk目录,给trunk目录创建了一个分支dev目录,目录里都有1.txt 2.txt文件,如下:
dev修改了1.txt,并提交,内容如下:
dev 1a
trunk也修改了1.txt,并提交,内容如下:
trunk 1a
此时,把dev合并到trunk,会产生冲突
二 解决冲突:
选择 Resolve all late
r
Conflicted 的那一行就是冲突的文件,右键这个文件,
可以选择 Resolve conflict using 'theirs' (这个是保留分支上的修改也就是这里的dev里的1.txt),
可以选择 Resolve conflict using 'mine' (这个是保留主干上的修改,也就是这里的trunk里的1.txt)
可以选择 Edit Conflicts ,编辑冲突:
最下面的面板是编辑的地方,上左边是 dev的修改,上右边是trunk的修改,编辑完点击保存
选择 Mark as resoved,已经解决,关闭编辑窗口。可以看到冲突已经解决。
点击OK 完成Merge.
需要注意的地方:
如果合并产生冲突,不要点击Abort Merge(停止合并)或者右上角×,因为会生成很多乱七八糟的文件:
要选择 Resolve all later,按照上面的步骤解决冲突,而不是终止。