SVN是非常实用也好用的版本管理工具,但不是万能的,有时候还需要你手动解决。
一般在你准备提交一个新版本时,首先update一遍,有时候update完之后发现跟本地版本有冲突,这时候,在有冲突文件的地方存在4个文件:
1)petgeniusupdatelayer.ccb,这是冲突的文件,也就是你update下来的文件跟本地的文件合并之后存在冲突的文件,这个文件需要你去处理;
2)petgeniusupdatelayer.ccb.mine,这是在update之前本地修改的文件;
3)petgeniusupdatelayer.ccb.r19732,这是该文件的初始版本;
4)petgeniusupdatelayer.ccb.r20390,这是SVN服务器上你update下来的文件(服务器最新版本的文件);
一般冲突出现的原因是你和另外一个比你先commit的家伙修改到了这个文件的同一个地方,这个时候你有3种解决方法:
1)手动合并代码,这就要求你在不改动另外一个家伙代码目的的情况下,把自己的代码加进去,或者你们协商修改,一般问题不大,不要犯迷糊就可以;
然后再svn里,remark as resolved;重新检查一遍即可commit;
2)无视新版本,使用你自己的版本,这时,只需要把后缀名为.mine的文件去掉这个后缀名,替代源文件petgeniusupdatelayer.ccb即可;
这种情况也有,比如某个模块只有你自己负责,别人不会动这个地方的代码等,但是由于不小心改动了一些(经常是别人要测试,自己改代码,改完之后忘记改回来就提交了)。
3)放弃本地版本,petgeniusupdatelayer.ccb.r20390去掉后缀名就是最新版本,或者直接全部删除,重新update一份,这代表完全放弃自己的修改,完全做无用功啊;
为了尽量避免冲突,减少麻烦:
1)提交的时候要注意检查自己本地修改,每个修改的地方做到心中有数,不需要提交的代码,比如打印Log,测试代码注意及时删除;
2)每次开始修改一份代码时,尽量保证初始代码为最新,这样可以尽可能减少冲突的发生;