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冲突的解决:
-
右键项目 -> 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的解决办法(代码片段