SVN冲突出现场景

如今是一个团结协作的时代,开发一个系统,往往会多人协作共同完成。版本管理是必不可少的,常用的软件有Git,SVN等。今天说一下,SVN管理版本时,如果出现冲突后,如何快速解决冲突。

首先说明一个问题,有一种情况无论如何都不会出现冲突。假如有一个叫qaz的程序员,他checkout了版本库,这样他拥有了一个工作副本。然后,他修改了某个文件IMRoot.cscommit到SVN,并且这个文件保证不会有其他人在他们的工作副本修改并提交到SVN。这种情况下,无论qaz 如何修改IMRoot.cs ,在commit时都不会发生冲突。

以上说了一种不会出现冲突的情况,那么什么应用场合可能会出现冲突呢?假如程序员wsx 他会修改文件 IMRoot.cs 并commit 到SVN,此时可能会引发冲突。

实例分析

下面,我们根据实际应用场合,模拟出现冲突,到如何通过SVN提供的Edit Conflicts 界面,通过颜色标识和操作按钮,快速准确地合并解决冲突。

开始,IMRoot.cs 文件主题内容是这样的,命名空间为了理解方便省略掉。

qaz 在文件的第14 行做了修改,其他的未作任何改动,并且将修改commit到了SVN。

wsx 在在第19行做了修改,修改如下,

并且在提交前update了(注意因为这个文件已经被qaz 做了修改,所以wsx 如果commit前不update,SVN是不允许提交的),然后commit,此时,SVN不会引发冲突,因为修改不是在同一行。SVN将qaz 的修改合并到了wsx 拥有的工作副本中,合并后文件如下所示,

为了故意引发冲突,假设qazwsx 同时都修改了第29行。前者修改第29行为如下,并且commite 到了SVN中

后者修改也同时修改了这一行,这意味他并没有update 这个文件,

然后他commit 到SVN时,提示先update ,紧接着出现冲突,如下所示,

此时,找到这个文件,右键选择Edit conflicts 按钮,弹出编辑冲突的界面,这才到了重点!

从上图可以看到,主要有3个子窗口组成,左上Theirs 为SVN版本库中(也就是qaz 刚才修改提交到SVN的版本),右上 Minewsx (正在提交到SVN发现冲突的他)的工作副本文件,下方为合并他俩的文件后的显示窗口。

以下为这3个窗口的局部视图,依次为左上,右上,下方,


左上

右上

下方

当面对以上3个窗口时,还是容易让人发蒙,尤其是文件比较复杂,冲突一大片,各种颜色掺杂在一起,不知如何下手,害怕把其他文件意外破坏和文件合并错误。那么怎么办呢?我们不妨先从简单的文件冲突入手,彻底理解各种颜色的含义,冲突行是如何标记的,这样我们才敢大胆地使用这个界面进行代码合并操作,不用担心合并后,把别的文件无辜干扰了或者出现合并错误的问题。

仔细观察以上3个窗口,我们发现,28行和29行之间多出来一行,即橙色行,并且TheirsMine 都含有这一行,这个是未冲突前,此行的内容,即刚开始的版本。第29行是爆红行、冲突行,相应字段还是黄色警示,并且在第3个窗口(下方窗口)第29行全是?????这种符号,意味着无法合并他俩对此行的同时修改,需要我们判断,要么采取Theirs 的,要么采取Mine 的,要么采取上一版本,要么重新商量一个相同的。SVN也提供了几个方便的右键按钮,提示如何做出这些选择,

use this text block : 选取选中行的内容
use this whole file :选取选中行所在文件的全部内容
use text block from mine before theirs :先用Mine的内容,后面接着用theirs的

假如第29行我们想采用qaz 的修改,那么,我们在左上窗口,选中第29行,右键选择 use this text block ,然后下方的视图变为如下,

第29行由一行??????变为左上窗口第29行的内容,颜色由爆红变为了浅绿色。这时候注意观察,在上一行橙色显示内容代表什么意思,注意最左侧有个 “-”提示,代表此行不会纳入合并文件中。

假如第29 行,我们都想纳入qazwsx 的修改,此时我们在左上窗口选择,use text block from mine before theirs ,即先用Mine的内容,后面接着用theirs的,选择后下方窗口合并内容如下,

可以看到,第29行,先显示Mine的,然后显示Theirs的。

这些操作后,我们点击上方的Mark as Resolved 按钮,然后保存即可。这样冲突就被解决掉了。然后wsxcommit 自己的内容到SVN。

冲突深度详细解决方案及可能带来的隐患思考

更加复杂的合并情况的详细解决方案及可能带来的隐患思考,见我的总结:版本管理-SVN冲突爆红详细解决方案及可能带来的隐患思考(二)

版本管理-SVN冲突爆红后如何通过颜色和快捷键准确无误地合并代码(一)相关推荐

  1. Android Studio 打开后无故爆红后解决办法

    今天打开AndroidSutudio后表示一脸蒙蔽,项目无故爆红,我本以为是哪里的代码有错导致 报错,于是乎逐个检查,但是并没有发现任何问题,然后CelarProduct,ReBuildProduct ...

  2. 摆摊神器五菱荣光爆红后,上汽大通房车又成夜市新晋网红

    继"摆摊神器"五菱荣光售货车爆红网络后,上汽旗下的大通房车又成为市集夜市中的新晋网红.数据显示,截至目前,上汽大通房车自营租赁平台"房车生活家"已经在上海.成都 ...

  3. ChatGPT 爆红后,估值 290 亿美元的 Open AI 要被收购?

    来源:AI前线 整理:冬梅 OpenAI 被曝就收购要约展开谈判 当地时间 1 月 5 日,据<华尔街日报>报道,有知情人士透露,爆红的聊天机器人 ChatGPT 背后的研究实验室 Ope ...

  4. JavaScript 爆红后,微软为何还要开发 TypeScript?

    开源 TypeScript 在经历过最初微软的内部抵制后,如今终于成长为构建 Web 应用程序的首选语言. 作者 | Liam Tung 译者 | 弯月,责编 | 屠敏 头图 | CSDN 下载自东方 ...

  5. 农妇做自媒体爆红背后的故事

    近日,经媒体报道,农妇做自媒体月入过万引发了网络的关注.在舆论的关注下,工作室承受巨大压力后已停工,部分原创自媒体账号也已经被封号.李传帅承认之前媒体报道有夸大的成分:"一个月也就挣个几万十 ...

  6. 90后技术宅研发Magi一夜爆红,新一代知识化结构搜索新时代来了?

    整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 11 月 7 日,微信群里突然炸了,大家似乎都在讨论一个叫做 Magi 的搜索引擎,据说搜索结果和现在的搜索引擎很不一样,能够输出 ...

  7. Win10 C盘爆红找出edb文件146G,删除后又出现如何解决

    环境: Win10专业版 问题描述: Win10 C盘爆红找出edb文件146G,删除后又出现如何解决 解决方案: 一.更改edb文件到别的磁盘 进入"索引选项"后,点击" ...

  8. mybatis的映射文件中的mapper空间名不能自定义名字,自定义后爆红

    初学mybatis,遇到很多奇葩问题,很多时候第一次编辑的时候没出现任何问题,第二次复习的时候各种报错,疯狂爆红. 这里说的就是映射文件中mapper空间名字不能自定义的问题,第一次操作时 没有任何问 ...

  9. 鸿蒙生息 不朽凡人,继《不朽凡人》后,鹅是老五又一新作爆红,评分9.8强势霸榜...

    大家好,我是小马哥,每天小编推荐的小说都是精心为你们挑选的,高人气高质量,希望你们喜欢,今天推荐修真小说,一起来看看.继<不朽凡人>后,鹅是老五又一新作爆红,评分9.8强势霸榜 第一本:& ...

最新文章

  1. tidb mysql登录_TiDB 忘记密码如何登陆
  2. linux sed 选取,linux sed 替换(整行替换,部分替换)、删除delete、新增add、选取...
  3. 《水泥公司信息管理系统》Access学习心得
  4. 做diff_Virtual Dom amp;amp; Diff原理,极简版
  5. 什么是“ rpcsvchost”,以及为什么它在Mac上运行?
  6. python调用高德地图api 可视化_Python:利用高德地图API实现找房
  7. 【3】docker-compose
  8. 开课吧:从事数据分析必备能力有哪些?
  9. 锐捷长ping_锐捷交换机常用操作命令
  10. 计算机文化基础十一版百度云,计算机文化基础(高职高专版 第十一版)第一章答案...
  11. vue 脚手架启动html,vue脚手架项目创建步骤详解
  12. 在WordPress中使用旋转文字创建“会话”横幅:第2部分
  13. 3900x做服务器性能怎么样,AMD Ryzen 9 3900X评测:向消费级性能王者宝座进发
  14. 新赛季上分神器 vivo X70 Pro+首批适配《王者荣耀》120Hz极高帧率
  15. matlab学霸表白公式,怎么表白:数学函数表白
  16. php中关于文件操作的面试题,php面试题及答案
  17. web3:颠覆互联网还是白日梦一场?
  18. CPA、CPS、CPM、CPT、CPC 是什么?
  19. 中国移动java面试_中国移动软件工程师面试经验
  20. 老鼠赛跑游戏(富人不为钱工作)

热门文章

  1. w10系统打不开服务器共享打印机,win10系统无法共享打印机的方案
  2. 文件或目录损坏且无法读取的解决办法
  3. using index
  4. 使用C#压缩解压rar格式文件
  5. 真实骑手数据:73万大学毕业生在送外卖?
  6. linux画国旗程序,C语言也能画国旗
  7. [BZOJ3895]取石子
  8. Android 应用分屏
  9. [原][小说]我和她同居的日子 二
  10. android10新功能,三星A80升级安卓10 更新One UI 2.0内容新功能介绍