一、产生冲突的原因:

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

二、解决方法:

从服务器端下载文件:

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本_02

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

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本_03

用户提交:

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

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_解决冲突_04

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_服务器_05

选择升级:

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_解决冲突_06

网上提供解决办法:

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

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

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


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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本_07

我提供的几种解决方法:

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_服务器_08

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

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

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本_09

tortoiseSVN excel文件冲突 svn文件处于冲突状态_解决冲突_10

单击复原到此版本。

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_解决冲突_11

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


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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本_12

tortoiseSVN excel文件冲突 svn文件处于冲突状态_解决冲突_13

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

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

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

tortoiseSVN excel文件冲突 svn文件处于冲突状态_新版本_14

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

然后选中冲突的文件右键

tortoiseSVN excel文件冲突 svn文件处于冲突状态_解决冲突_15

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

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


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

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

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

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