前言
很多人因为不知道处理冲突就很久很久都不愿意更新代码, 另一些人就是不管三七二十一就选了"theirs conflict"或"mine conflict", 有时候树冲突根本这两个选项, 他们就强制resolve了, 到最后新代码一提交就把别人代码给覆盖了. 这样给团队合作造成极大的不便, 甚至导致版本故障.
本文总结最厌恶最难处理的树冲突, 让你从此不再恐惧代码冲突.
树冲突的产生
如果一个文件在不同的端都做了修改, 就产生了分歧, svn在�update�或merge时会尝试自动合并, 大部分情况会成功, 但是也有时候会失败, 这个时候就会提示冲突.从局部来看冲突是因为两个端对同一对象进行了修改, 树冲突则是因为两路修改导致了目录结够不一致, 树冲突的现象都是一端modified, 另一端missing. 树冲突不仅要解决目录结构冲突, 同时可能需要解决普通的文件内容冲突.
在冲突发生时, 先可以用这些命令查看一下状态:
用svn status(st)查看哪些文件冲突了:
$ svn st
M code/foo.c
A + C code/bar.c
> local edit, incoming delete upon update
Summary of conflicts:
Tree conflicts: 1
用svn info查看冲突信息:
$ svn info code/bar.c
Path: code/bar.c
Name: bar.c
URL: http://svn.example.com/svn/repo/trunk/code/bar.c
…
Tree conflict: local edit, incoming delete upon update
S