Eclipse SVN 冲突的 介绍 及 四种解决方式

1.为什么会出现冲突

<1>两个开发人员,Harry和Sally,分别从服务器端下载了文件A。

<2>Harry修改之后,A变成了A’,Sally修改之后,A变成了A”。

<3>Harry先一步提交,使服务器端文件的版本也变成了A’

<4>Sally本地的文件A”已经过时了,此时她已无法提交文件,服务器会要求她先进行一次更新操作。

<5>此时Sally的更新操作有两种可能

(1)Sally所做的修改与Harry不是同一个位置,更新操作尝试合并文件成功。

(2)Sally所做的修改与Harry恰好是同一个位置,更新操作尝试合并文件失败,发生冲突。

如下图 :
这里写图片描述

2. 冲突的解决

这里写图片描述

在冲突文件上点右键→Team→编辑冲突…→出现如下界面

注 : 下图是以对比的方式将本地内容与冲突内容显示出来,其中左侧为本地内容,右侧为冲突内容。其中本地内容是可以修改的。根据需要和实际情况将本地内容更正 , 这个过程很可能需要牵涉冲突的两位开发人员进行必要的沟通
这里写图片描述
冲突解决完之后 , 在冲突文件上点右键→Team→标记为解决(此处有四种解决方式,下面介绍)
此时.mine文件和.r版本号文件都会被自动删除,冲突文件的图标变为”*”,表示可以提交。

提交文件,文件图标变为”金色圆柱体”。

四种冲突的解决方式

  1. 将两个版本的文件合成一个,就是 我改的部分需要 , 同事改的也有一部分要保留 (常用)
  2. 以我写的版本为准,将同事在我之前提交的版本,给替换掉(偶尔用)
  3. 使用SVN上最新的版本 (就是你写的不要了, 直接用别人的. 这种情况其实你直接还原一下你改的文件就行了 ~.~ ,没必要这么麻烦了就)
  4. 还原到 你 和 你同事 改之前的版本(这种情况出现比较少,比如我改着改着,后来别人说这个功能不做了,其他同事修改的也要取消,就可以选择这个)
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/diyu122222/article/details/79879376