svn文件冲突的解决
冲突后,会产生三个多余的文件。
①文件名.扩展名.mine
这是你的文件,在你更新你的工作副本之前存在于你的工作副本中--也就是说,没有冲突标志。这个文件
除了你的最新修改外没有别的东西。
②文件名.扩展名.r旧版本
这是在你更新你的工作之前的基础版本(BASE revision)文件。也就是说,它是在你做最后修改之前所检出的文件。
③文件名.扩展名.r新版本
这个文件是当你更新你的工作副本时,你的subversion客户端从服务器接收到的。这个文件对应版本库中的最新版本。
svn如何解决冲突:
①:可以手动打开冲突的文件,修改后,然后执行TotoiseSVN-》已解决,并提交人的修改到版本库。
需要注意的是以解决命令并不是真正的解决了冲突,它只是删除了文件 文件名.扩展名.mine和文件名.扩展名.r*,允许你提交修改。
②:如果冲突时,如果你要撤离你的修改,保留版本库中的版本,请使用SVN还原(Revert)命令。
③:如果你要保持你的版本覆盖版本库中的版本,使用已解决命令,然后提交你的版本。
<<<<<<< .mine
//kris's test
printf("kris: 12 + 28 = %d.\n",add(12,28));
=======
//sally's test
printf("sally: 60 - 33 = %d.\n",sub(60,33));
>>>>>>> .r7
你会看到由小于号、等于号和大于号串组成的三个部分,其中小于号和等号之间的内容是你的修改,
而等于和大于号之间的修改时其他的修改,在明确了冲突的原因之后,我们已经知道怎么
修改了,两个人的修改都是需要保留的。
OK,那就保留所有的修改,删除掉<、=和>,最后的结果如下:
小于号、等于号和大于号串是冲突标记,并不是冲突的数据,你一定要确定这些内容在下次提交之前得得到删除。
冲突解决了,下面的工作就是通知svn,我们已经把冲突搞定了(使用svn resolved命令),下面该你了,
svn resolved命令会把svn冲突时产生的临时文件删除。
然后执行svn commit 提交代码。