【SVN】merge 合并trunk branch代码,解决冲突

在命令行模式下进入待merge的项目根目录

1.将指定url上的代码merge到本地当前文件夹下(--dry-run表示test merge)
E:\project\ry\trunk\ees-tem>svn merge http://192.168.0.2/svn/repo/ProD/JinZay/EE
S/code/ees-tem/branches/develop -c 1149491 ./ --dry-run

2.将url指定代码的 A--B 版本[版本区间] 合并到本地,版本范围为[A,B) 半开半闭区间
svn merge url -r A:B ./

==============================

U:表示从服务器收到文件更新了 
G:表示本地文件以及服务器文件都已更新,而且成功的合并了 
其他的如下: 
A:表示有文件或者目录添加到工作目录 
R:表示文件或者目录被替换了. 
C:表示文件的本地修改和服务器修改发生冲突
==============================

说明:下面演示的是trunk修改内容节点revision 19906的内容merge到Branch;

首先要在本地创建Branch的副本;

进到Branch副本目录下;

下面命令中的url是svn/trunk的全路径;

添加--dry-run参数仅仅是对merge的内容进行测试,不进行实际merge操作,检查是否由冲突,冲突发生在哪个文件;

去掉--dry-run参数就是实际的merge动作;

1.svn merge url -c 19906 ./ --dry-run

对merge的svn -r  19906进行测试,不进行实际merge操作,是否与本地文件存在冲突;

由上图可知存在冲突,即

下面解决冲突:

2.svn merge url -c 19906 ./

这里进行实际的merge操作:

【SVN】merge 合并trunk branch代码,解决冲突_第1张图片 由上图可知因为merge的trunk的代码与本地代码存在冲突,选择df,显示冲突;

可以看的后面大红色方框内,即冲突内容;

1位置是svn 上一个版本r19905的内容;

2位置是svn要merge的版本r19906的内容;

下面选择修改文件

3.选择e进行手动编辑冲突文件,根据上面冲突提示,进行编辑即可,保存更改,又出现刚才的选项。此时你使用r选项,则会合并文件。如下所示:

4.选择r,则会合并文件

 5.自此,整个merge和解决冲突结束,下面查看修改状态,提交代码;

总结:故merge发生冲突的三步曲:

        1.df,选择df,显示冲突内容;

        2.edit,对冲突内容进行编辑,解决冲突;

        3. r,合并文件,标记冲突已经解决。

参考:(36条消息) svn merge 时候出现的问题以及解决方法_shujuliu818的博客-CSDN博客

你可能感兴趣的:(SVN命令与技巧,svn)