SVN冲突的原因和解决

1.svn冲突产生的原因:
两个人对项目的同一个文件,同一处地方都做了修改;
但是,他提交在我之前,这样我的就会和他的发生冲突了
如果别人和自 己更改的是同一个文件,那么update时会自动进行合并,
如果修改的是同一行,那么合并时会产生冲突!
举个情景例子就是这样:
有两个开发人员,大富和小贵,分别从服务器端下载了文件A。


大富修改之后,A变成了A’,小贵修改之后,A变成了A”。

大富先一步提交,使服务器端文件的版本也变成了A’


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

此时小贵的更新操作有两种可能:


(1)小贵所做的修改与大富不是同一个位置,更新操作会先合并文件然后成功。


(2)小贵所做的修改与大富恰好是同一个位置,更新操作先尝试合并文件然后失败,发生冲突。

注:
如果这个文件发生了svn冲突,该文件会被用双红标示,同时该文件还会注释并显示修改者的姓名信息;
如果冲突了,同一文件会出现四个后缀不同的相同文件:一般第二个.mine文件是我修改的文件;
第三个文件是svn服务器上的原版文件,第四个文件是别人修改的文件;

2.svn冲突的解决

  解决:我觉得我修改的好,以我修改的为准,废掉别人的
  操作:右键冲突文件,选择markresolved,会弹出一个选择弹出框,选择第二个resolve conflict by using my version of file

  解决:不用我的,以同事的为准
  操作:同上,只不过选择第三个:resolve conflict by using the incoming of the file

扫描二维码关注公众号,回复: 3819747 查看本文章

  解决:所有的修改都要撤销掉,回到文件原来没有别修改过的样子
  操作:同上,只不过选择第四个:resolve conflict by using base version of the file

  解决:把同事改动的和我改动的合并到一起
  操作:右键冲突文件-edit conflicts-对照和复制粘贴-最后右键冲突文件-mark resolved-conflicts has been resolved in the file


3.svn冲突一定是发生在更新之后,但更新的背景不同;多数的情况是,我做了一些修改,
  然后去提交,发现报错了,SVN提交has encountered a problem
  这时候就说明,冲突了;
  这时候选中无法提交的文件,点击更新,就会多出三个文件:
  .mine:我修改过的文件备份
  .r(xxx):基础版本文件
  .r(xxx+1):svn最新版本的内容(就是别人修改过的)

猜你喜欢

转载自blog.csdn.net/weixin_42204641/article/details/83574811