SVN版本冲突解决详解

转载 2013年12月03日 09:21:03

版本冲突原因:

假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。

 

版本冲突现象:

冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。

假设文件名是kingtuns.txt

对应的文件名分别是:

kingtuns.txt.r101

kingtuns.txt.r102

kingtuns.txt.mine

kingtuns.txt。同时在目标文件中标记来自不同用户的更改。

 

版本冲突解决:

场景:

1、现在A、B两个用户都更新kingtuns.txt文件到本地。

1

 

2、文档中原始文件内容如下:

2

 

 

3、A用户修改文件,添加内容“A用户修改内容”完成后提交到服务器

3

4

 

 

 

4、B用户修改文件,添加内容“B用户修改内容”完成后提交到服务器

5

 

B用户提交更新至服务器时提示如下:

6

 

B用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行svn resolved(解决),然后在签入到版本库。在冲突解决之后,需要使用svn resolved(解决)来告诉subversion冲突解决,这样才能提交更新。

 

解决冲突有三种选择:

 

A、放弃自己的更新,使用svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决)

 

B、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolved filename并提交(选择文件—右键—解决)。

 

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

 

解决步骤如下:

1、  在当前目录下执行“update”(更新)操作

 

 7

2、  在冲突的文件上(选中文件--右键菜单—TortoiseSVN—Edit conflicts(解决冲突)),出现如下窗口

 

Theirs窗口为服务器上当前最新版本

Mine窗口为本地修改后的版本

Merged窗口为合并后的文件内容显示

     8

3、  如果要使用服务器版本,在Theirs窗口选中差异内容,右键,选择Use this text block(使用这段文本块)。

同理如果要使用本地版本,在协商后,在Mine窗口右键,选择Use this text block(使用这段文本块)。

 

    9

4、  修改完成后,保存kingtuns.txt文件内容。

 

5、  在B用户的冲突目录下,选中文件--右键菜单—TortoiseSVN—Resolved(解决)。会列出冲突的文件列表,如果确认已经解决,点OK。

10

 

6、  冲突解决

 

      11

7、提交解决冲突后的文件。

 

 12

 

 

如何降低冲突解决的复杂度:

1、当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。

2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘

3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本


转自http://blog.csdn.net/windone0109/article/details/4857044

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

一、产生冲突的原因: 根本原因就是两个用户都在使用同一个文件,其中一个对文件使用完成之后提交到服务器端,此时导致该文件的版本已经发生变化,而正在使用的用户仍然使用的是老版本的文件,当再次提交时导致版...
  • u010928470
  • u010928470
  • 2014年06月06日 09:26
  • 992

SVN版本冲突解决详解

版本冲突原因: 假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtun...
  • w1229748769
  • w1229748769
  • 2017年07月18日 00:51
  • 253

SVN解决冲突的几种情况

SVN是非常实用也好用的版本管理工具,但不是万能的,有时候还需要你手动解决。 一般在你准备提交一个新版本时,首先update一遍,有时候update完之后发现跟本地版本有冲突,这时候,在有冲突文件的...
  • tyxkzzf
  • tyxkzzf
  • 2014年12月01日 16:13
  • 12372

Eclipse中svn解决版本冲突

在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B...
  • u013036792
  • u013036792
  • 2015年02月10日 10:04
  • 1033

Eclipse中如何使用SVN及解决版本冲突

如何在Eclipse里安装Subclipse插件: 方法一:从Eclipse Marketplace里面下载 具体操作:打开Eclipse --> Help --> Eclipse Marketp...
  • liuwenbiao1203
  • liuwenbiao1203
  • 2016年07月21日 14:24
  • 6991

SVN冲突解决和注意事项

在我们用VS进行项目合作开发的过程中,SVN的提交控制是至关重要的,大家不可避免的都遇到过SVN冲突的问题,开发的时候,应该认真学习SVN的知识,减少冲突,集中时间放在开发上。     解决冲突有...
  • u013045552
  • u013045552
  • 2015年12月20日 21:56
  • 3880

版本控制之svn上的冲突的解决

1. 1. 1.1解决冲突①什么情况下会发生冲突两个开发人员,Harry和Sally,分别从服务器端下载了文件A。Harry修改之后,A变成了A',Sally修改之后,A变成了A''。Harry...
  • kaikai_sk
  • kaikai_sk
  • 2016年10月04日 15:24
  • 495

解决Eclipse SVN文件冲突详解

在使用Eclipse SVN插件进行团队开发的过程,假设开发人员A和B都获取了同一个文件的最新版本(假如版本号为8),并都对其进行了改动,成员A已经提交了自己所作的改动(版本号变为9),如果此时成员B...
  • u014236541
  • u014236541
  • 2017年01月13日 15:16
  • 6206

VS 下 解决SVN冲突--项目问题解决篇

最近项目开展的如火如荼。由于不是按层开发,每个人敲一条线,即使是自己在敲代码之前先更新,敲完之后立马提交也 难免和别人的会冲突。最头痛的就是这个了。忙活了半天,提交不上,还有可能把自己的 把服务端造成...
  • u010176014
  • u010176014
  • 2014年12月21日 16:15
  • 2419

myeclipse的svn插件解决冲突的几种情况。

myeclipse的svn插件解决冲突的几种情况。
  • u012726702
  • u012726702
  • 2017年07月12日 23:14
  • 271
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SVN版本冲突解决详解
举报原因:
原因补充:

(最多只允许输入30个字)