SVN系列(三)解决版本冲突的方法

一、产生冲突的原因:

根本原因就是两个用户都在使用同一个文件,其中一个对文件使用完成之后提交到服务器端,此时导致该文件的版本已经发生变化,而正在使用的用户仍然使用的是老版本的文件,当再次提交时导致版本不一致提交错误。

二、解决方法:

从服务器端下载文件:


相当两个用户使用同一个文件

其中一个用户对文件进行了修改,然后提交

用户提交:

现在第二个用户也修改了文件,同样进行提交,但是和第一个用户的修改内容不一样

如图,显示的是第一个用户提交成功,但是第二个用户在提交的时候出现了问题:

上面的错误提示,必须先更新工作副本!

选择升级:

这就是产生了冲突,原因就是两次提交的是同一个文件,但是第二个在提交的时候版本已经发生了变化。

网上提供解决办法:

1、  放弃自己的更新,使用SVNrevert(回滚),然后提交

2、  放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolved filename 提交(选择文件——右键——解决),一般不采用这种方式。

3、  手动解决冲突:冲突发生时,和用户沟通,手动更新目标文件,然后执行resolved filename 来解决冲突,最后提交。

 

可以看到文件和文件内容的图标都变成了黄色感叹号:

我提供的几种解决方法:

1、如果是对于第一个版本的修改我们还需要的话,那就在第二个版本的基础上进行还原SVN:

这样此版本的文件就是刚刚已经提交用户的文件,在这个基础上重新进行修改。然后提交,然后更新。

2、如果是不要第一个版本的修改,需要提交第二个用户的修改,那么就把版本恢复到第一个用户提交之前的状态,然后提交新修改的版本。

单击文件夹,选择显示日志,查看日志信息,选择恢复的版本,然后在这个版本上添加第二个用户的修改内容,再提交和更新,这样服务器上的版本就是第二个用户的修改的版本。

单击复原到此版本。

3、如果两个用户修改的版本都需要,那么在第二个用户修改的文件夹上单击

选择“已解决的”,这样两个修改文件合并到了一个版本上,然后再次提交,更新!

 

当遇到冲突的时候,可以把冲突版本和已经提交的版本进行比较,然后找出不同的地方,经过沟通或者其他方式商讨出合适的版本,然后进行恢复版本、提交。

左边的窗体为服务器上的当前最新版本

右边的窗体为本地修改的版本

如果想用最新修改的版本,就在相应版本(左边或者右边)上单击出现:

当然根据提示也可以选择他们的,根据版本需要进行选择。

然后选中冲突的文件右键

选择“已解决的”,然后提交版本,再更新版本。

这样版本库中就是新修改的版本。


解决冲突的办法有好多,根据自己想要的版本需求,选择合适的方法!

在此,关于SVN冲突的解决方案就介绍到此,关于SVN系列的博客就介绍到此了!

在对待冲突的问题上,我们要做的不是如何解决冲突,而是避免冲突,因为在软件开发过程中,冲突要尽量的减少才能保证软件编程的方便、快捷和正确,避免冲突的方法我们可以对服务器上的文件进行权限控制,不是每一个用户都可以随便的访问这个文件,事实上,在软件开发过程中,我们能够访问的也多是自己负责的那部分的东西。还有就是对于已经修改的文件要及时提交,及时更新,不要等好长时间才提交,这样方便别人在用的时候是在最新版本的基础上进行的修改,另外每次提交文件的时候要注释好这个文件做了哪些方面的修改,方便文件的还原和后续使用。

编程是一种习惯,工作也是一种习惯,我们对待每件事情都要有一个认真负责的好习惯!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值