版本冲突原因:

假设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文件到本地。

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

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

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

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

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

解决冲突有三种选择:

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

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

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

解决步骤如下:

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

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

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

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

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

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

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

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

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

6、 冲突解决

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

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

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

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

3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。
————————————————
这个作者大大写的很好 转载了
原文链接:https://blog.csdn.net/windone0109/article/details/4857044

SVN版本冲突解决详解相关推荐

  1. svn冲突问题详解 SVN版本冲突解决详解

    解决版本冲突的命令.在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新.冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上 ...

  2. SVN 树冲突解决详解

    SVN 树冲突解决详解 https://blog.51cto.com/u_15047490/4217803?abTest=51cto

  3. 【git】git冲突解决详解

    git冲突解决详解 方法1:pull下来然后修改冲突文件 方法2: cherry-pick然后checkout git merge时,不免产生各种各样的冲突,可是我们连如何选择版本都晕半天,这里进行详 ...

  4. support库中v4 v7版本冲突错误详解

    support中v4 v7库版本错误,主要会报以下两种错误,下面针对每一种错误进行详解 第一种 错误信息: 先来看两个崩溃信息,如下: java.lang.NoClassDefFoundError: ...

  5. git 主干修改合并到分支_idea+git合并分支解决冲突及详解步骤

    Git分支详解参考: 分支管理组成 1.1.master主干 在版本管理中,代码库应该仅有一个主干.此主干是和当前生产保持一致的,是可用的.稳定的可直接发布的版本,不能再主干上进行任何开发操作.git ...

  6. SVN版本冲突原因以及详细解决办法

    原文链接:https://www.cnblogs.com/jose-Lee/p/4896088.html 开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了.不管你个人喜欢g ...

  7. [svn]svn conflict 冲突解决

    [svn]svn conflict 冲突解决 转自:http://www.gezila.com/tutorials/17290.html 目录: 1. 同一处修改文件冲突 1.1. 解决方式一 1.2 ...

  8. android StudioSVN版本冲突解决

    SVN版本冲突,xx.JAVA文件出现红色,commit时出现.mine等文件,提交后xx.java下生成3个文件R.java.mine,R.java.r230,R.java.r280,这就是SVN中 ...

  9. 经验积累①:关于设备程序的版本迭代方案详解

    关于设备程序的版本迭代方案详解 一.案例描述 对于嵌入式应用层来说,需要对设备的很多参数进行保存,为了使得这些配置参数掉电不丢失,因此在flash中生成配置文件用于保存设备参数,每当设备重启后,将参数 ...

最新文章

  1. 看漫画学Python,屏幕前的彦祖要不要试试?
  2. 【Linux】6.服务器会话的screen用法
  3. jvm:类加载器与双亲委派模型
  4. H3C S5120-52P-WiNet交换机配置
  5. ServiceStack.Redis之IRedisClient第三篇
  6. 关于最小化的另辟蹊径
  7. sp_executesql介绍和使用 转
  8. Android开发笔记(六)可变字符串
  9. HIBERNATE调试工具JBOSS TOOLS
  10. LWM2M开源协议栈——wakaama源代码分析
  11. [JavaScript] 模拟京东快递单号查询案例
  12. mysql my.cnf 字符集_my.cnf 中字符集设置
  13. n一加关闭小部件_小部件
  14. nyoj145 聪明的小柯
  15. Lua的安装配置出现的问题以及解决方案(Win10环境下)
  16. 居然打不开msi文件?
  17. 怎样正确理解LOOPBACK接口?
  18. 数据分析师是热门职业么?转行容易么?
  19. 1949: JH说要ak啦!
  20. 男人的快乐不就来了?

热门文章

  1. Vue 角色权限管理设计与实现
  2. MacBook Pro常用快捷键汇总
  3. PAT--1099 性感素数(C语言)
  4. java 数组中位数_找到数组总和的中位数
  5. QQ空间(Qzone)爬虫,手机扫描登陆后即可并发下载相册的相片/视频,嗯~就是这么简单
  6. 软件-SecureCRT:SecureCRT
  7. 什么牌子的蓝牙耳机耐用又便宜?好用的蓝牙耳机品牌推荐
  8. MySQL免密登录操作
  9. windows server上novnc的部署和使用
  10. 软考信息系统项目管理师考试视频辅导课程-卢海强-专题视频课程