冲突是如何出现的
2个用户修改了同一个源文件,A用户先提交代码,然后B用户提交代码,这个时候就出现冲突了。
如何解决冲突
4个文件
出现冲突之后,B用户这边出现了4个文件(1个是源文件本身 + 3个附加的源文件)
1.源文件本身的意思是指,该文件在解决冲突之后可以被提交。
这个文件里面包含了本地的文件,加上自己修改的代码,加上别人修改的代码。除此之外,还有小于号、等号、大于号等内容:
<<<<<<<< mime
B用户修改的代码
=============
A用户修改的代码
>>>>>>>>r最新版本
注:在小于号和等号之间的代码,是当前用户修改的代码;
在等号和大于号之间的代码,是别人修改的代码。
2.3个附加的源文件是指,这3个文件在解决冲突之后将自动消失。
a.mime文件(本地的文件,加上修改的代码)
b.r版本(本地的文件,不包括修改的代码——其实就是最新版本的上一个版本的源文件)
c.r版本(最新的版本,即与svn服务器上的文件一致)
编辑冲突
右键源文件本身——》编辑冲突,打开文件对比窗口,该窗口会出现mime文件(即左边的文件,名字叫merged file) + r最新版本的文件。
1)被修改的内容分2种,一种是可以合并的修改,一种是冲突的修改(红色部分是出现冲突的修改)。
2)对于冲突文件,我们只需要解决冲突的修改即可。
3)如何解决呢?一定要手动把r最新版本文件夹的红色部分复制到mime文件,并且删除mime文件的红色部分。
4)保存。
注:或者点击按钮操作(复制当前选择的红色修改到左边文件),把r最新版本文件的红色部分复制到mime文件;
并且,要手动删除mime文件的红色部分。
解决冲突
3.右键源文件本身——》解决冲突。目的是告知svn冲突已经解决。
这个时候会发现3个附加的源文件已经消失。
提交
4.右键源文件本身——》提交。
附加:解决冲突时的相关技巧
查看某个文件的本地修改历史记录
查看某个文件的每一次的本地修改过的历史记录,既可以查看该文件的本地历史记录,也可以比较每次的本地历史记录与当前工作空间的区别。
1、查看某个文件的每一次的本地修改过的历史记录
右键文件——》Compare with——》LocalHistory
或者
右键文件——》Team——》Show Local History
2、然后,比较某一次的历史记录与当前工作空间的区别
右键某次历史记录——》Compare Current with Local
或者
双击
查看某个文件的svn提交记录
1、查看历史记录
右键文件——》Team——》显示资源历史记录
2、比较历史版本记录与当前工作空间的区别
右键某次历史记录——》Compare Current with Local
解决冲突的几种不同的思路
1、第一种思路
1)提交时出现冲突,总共生成了4个文件。
2)右键冲突文件——》Team——》编辑冲突:比较各种不同文件的区别——最主要的思想是把本地的文件更新为svn的最新版本,然后将自己修改的部分添加进去。
3)右键冲突文件——》Team——》解决冲突:主文件现在是svn最新版本的文件加上自己修改的部分,其他3个生成的文件现在立即消失。
4)提交主文件。
2、第二种思路
放弃本地自己的修改。
冲突文件立即消失。
剩下的就剩一个文件,是svn仓库最新版本的文件。
1)右键冲突文件——》Team——》还原,即可。