SVN冲突以及解决办法

Posted IT刑天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN冲突以及解决办法相关的知识,希望对你有一定的参考价值。

1.冲突原因:

假设 A、B 两个用户都在版本号为 100 的时候,更新了 kingtuns.txt 这个文件,A 用户在修改完成之后提交 kingtuns.txt 到服务器, 这个时候提交成功,这个时候 kingtuns.txt 文件的版本号已经变成 101 了。

同时B用户在版本号为 100 的 kingtuns.txt 文件上作修改, 修改完成之后提交到服务器时,由于不是在当前最新的 101 版本上作的修改,所以导致提交失败。

2.svn中 更新,提交,与资源库同步分别会有什么效果

1)提交:是用本地文件覆盖服务器的文件,只有提交会导致服务器上发生变化
2)更新:只是把服务器上最新版本下载到客户端,规则如下:
      (1)如果你本地的某个文件没有修改过,而服务器上的这个文件别人已经提交过新版本,那么会用服务器上最新的文件覆盖你本地的文件;
      (2)如果你本地的某个文件你修改过了还没有提交,服务器端的这个文件还没被别人改过,那么对你本地的这个文件没有任何影响;
      (3)如果你本地的某个文件你修改过了还没有提交,服务器端的这个文件已经被别人改过,那么会提示你发生冲突,会将服务器上最新版文件、你新修改的文件、发生分歧前的那个版本的文件都存放到你的本地
3)资源库同步:就是看你本地和服务器的版本之间差异的。你直接用更新,有时会出现冲突,会干掉自己的代码。资源库同步的目的就是让你知道那个文件有冲突,然后有选择的操作。

 3冲突的解决:

  1. 右键项目 -> Team -> 与资源库同步

             技术分享图片

            2.在同步视图中选择Conflicts Mode,以便首先查看解决冲突

            技术分享图片
           3.双击需要解决的冲突文件,这里为Student.java,右侧主显示区会出现比较视图。左侧为本地程序,右侧为svn上的最新代码
            技术分享图片
            原来字段名为email,本地将其改为emailAddress,线上代码显示有人将原来的email改为了phoneNumber并增加了属性teacher
            4.选中右侧的两行,点击图标拷贝到本地,保存
             技术分享图片
            此时线上的代码都已经拿下来了,可以继续执行下一步。
            5.右键冲突文件,选择“标记为合并”
           技术分享图片
           6.点击Incoming Mode -> 右键项目 -> 更新(更新线上的其他无冲突的代码)
           技术分享图片
           7.点击Outgoing Mode -> 右键项目 -> 提交。输入注释确定提交。
            经验:在提交前最好将视图中列出的(所有修改过的)文件双击查看审核一边,确保没有错误或者临时的代码。这一步常常会检查出问题。
           技术分享图片

 



以上是关于SVN冲突以及解决办法的主要内容,如果未能解决你的问题,请参考以下文章

svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法(代码片段

svn解决冲突后还会出现黑*的解决办法

svn 冲突解决办法(黄色感叹号)

Eclipse SVN插件冲突导致不能使用解决办法

快捷键和eclipse冲突怎么解决

svn is already locked解决办法