解决SVN更新冲突
冲突发生的情况
假设A、B两个用户,他们分别从SVN服务器中检出了test.js
文件,此时A、B、服务器三个地方的test.js
的版本都是13。现在,B用户修改文件内容并提交,此时B用户和服务器的test.js
的版本都变为14,只有A用户的test.js
的版本还是13。接下来,A用户修改不同的内容然后提交。
由于A用户是在13版本上做的修改,而服务器已经是14版本了,所以会提交失败。
提交失败之后有两个选择:第一,选择revert,省去了解决冲突的麻烦;第二,选择更新文件,这时会有冲突问题。
解决冲突
更新后会产生以下冲突文件:
- test.js.mine: 13版本内容 + A用户的修改
- test.js.r13: 13版本内容
- test.js.r14: 13版本内容 + B用户的修改
- test.js: 14版本内容 和 A用户的修改 合并后的文件
根据需要整理test.js
的内容,然后右击文件点击resolve
标记为解决,这时只剩修改完毕的文件存在,其他三个文件都会自动消失。如果新版本不需要用户B修改的内容,可以直接复制test.js.mine
的内容替换test.js
的内容。然后用户A就可以顺利提交了。
冲突符号
在整理test.js
时,不会遇到如下的特殊符号:
1 | <<<<<<< .mine |
修改后的代码里不能出现这些符号。