硬广:《SVN与TortoiseSVN实战》系列已经写了四篇,第二篇《SVN与TortoiseSVN实战:标签与分支》和第三篇《SVN与TortoiseSVN实战:TortoiseSVN新建及合并分支》重点介绍了标签和分支的概念及实际操作演示,关注人数较多。

上一篇提到关于冲突的知识,其中已经说明了第1点:

1、什么情况会产生冲突?

2、冲突发生时产生的三个文件是什么含义?

3、怎样使用TortoiseSVN解决冲突?

SVN是根据同时对相同位置上内容的修改来判断冲突的,这是核心的一点,下面说明2、3点。

冲突发生时产生的三个文件是什么含义?


在签出文件时,当本地文件的修改与其他人签入的修改产生冲突时,会产生三个冲突文件,如下图:

我们在冲突的文件上点击右键,使用TortoiseSVN的Show log查看下冲突文件的修改日志:

先补充一点,SVN的Revision是基于整个项目的,而不像有些版本控制程序针对于每个文件有自己的Revison,SVN每一次签入都会递增,一个Revision下可能包含多个文件的修改。

对比这Show log出来日志,我们来说下这三个文件的含义:

新建文本文档.txt.r96:96就是版本号,是你本次修改前的初始版本,也就是说你是基于这个版本修改的,如果你Revert本次修改,那本地会退回到这个文件的内容;

新建文本文档.txt.r97:97也是版本号,是别人在你签入前签入后生成的版本;

新建文本文档.txt.mine:是你修改后准备提交的那个版本,也就是在冲突产生前你修改的新建文本文档.txt的内容;

那这时的新建文本文档.txt的内容是什么呢?

打开后可以看到SVN已经修改了这个文件,使用<<<<<<< >>>>>>> 标明了发生冲突的地方,基于以上对三个文件的理解,大家应该能容易明白SVN的标记的方法了吧:

<<<<<<< .mine 和 ======= 之间是你修改的内容;

======= 和 >>>>>>> .r97 之间是别人最新签入的内容;

通过Show log查看别人签入时标注的注释,决定采用谁的代码,然后删除掉<<<<<、======、>>>>>和多余的代码来解决冲突。

最后强调一下 .mine 在SVN中代表自己的修改。

怎样使用TortoiseSVN解决冲突?


其实理解了SVN的标记方式,在冲突少的情况下手动解决是最方便的。

以下演示在冲突文件上右键,选择TortoiseSVN菜单Edit conficts,使用TortoiseSVN的工具来解决冲突:

相信了解三个冲突文件代表的意义以后,可以很容易了解以上三个区域显示内容的含义了:

左边代表别人的修改,右侧是自己的修改,底部是合并后的内容;

红色标记了冲突的行,在别人与自己的冲突行中选择采用的一行,点击右键Use this text block,就解决了一行冲突。

也可以使用整个文件来解决冲突,右键使用Use this whole file。

所有冲突解决完以后,点击上边的对号按钮,标记解决,这时此前的三个文件消失,签入你的修改。

额外说点什么


每次签入把本次修改的原因与注意事项的写入SVN的备注中是良好的习惯,当产生冲突时可以结合备注来了解修改的原因,对于CodeReview人员来说也是必须的。

SVN服务器可以设置脚本,对于不写备注的签入拒绝签入,设置方法可以自行百度。


记录,为更好的自己!

SVN与TortoiseSVN实战:冲突详解(二)的更多相关文章

  1. SVN与TortoiseSVN实战:冲突详解(一)

    硬广:<SVN与TortoiseSVN实战>系列已经写了三篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,第二篇<SVN与TortoiseSVN实战:标签 ...

  2. SVN与TortoiseSVN实战:文件加锁详解

    硬广:<SVN与TortoiseSVN实战>系列已经写了八篇,本篇是完结篇,整个系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,以技巧性为主. 本篇详解使用Tortoi ...

  3. SVN与TortoiseSVN实战:补丁详解

    硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...

  4. SVN与TortoiseSVN实战:补丁详解(转)

    硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...

  5. SVN与TortoiseSVN实战:属性的奇技淫巧(二)

    硬广:<SVN与TortoiseSVN实战>系列已经写了七篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解. 关于属性的奇技淫巧较多,分为两篇来写,第一篇详见< ...

  6. SVN与TortoiseSVN实战:属性的奇技淫巧(一)

    硬广:<SVN与TortoiseSVN实战>系列已经写了六篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,预计再用三.四篇来结束这个系列. 本篇详解一下SVN的属 ...

  7. 【山外笔记-SVN命令】svnlook命令详解

    本文打印版问文件下载地址 [山外笔记-SVN命令]svnlook命令详解-打印版.pdf 一.命令简介 svnlook是检验Subversion版本库不同方面的命令行工具,不会对版本库有任何修改,只是 ...

  8. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  9. SVN与TortoiseSVN实战:TortoiseSVN新建及合并分支

    硬广:<SVN与TortoiseSVN实战>系列已经写了两篇,第一篇<SVN与TortoiseSVN实战:从入门到精通>,关于分支和标签的知识介绍可翻阅第二篇<SVN与T ...

随机推荐

  1. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  2. 不能向Github提交某一類型的文件

    之前在github上建了6個project,但是其中有一個不能提交jar文件,其他的都可以.後來發現原來在項目中有一個叫.gitignore的文件,其他項目里的都是/bin,但是那個不能提交jar的項 ...

  3. Access“存储过程"参数顺序要与执行代码生成的参数顺序一致

    OleDbParameter olp; OleDbCommand cmd = new OleDbCommand("insertYjsData"); olp = new OleDbP ...

  4. flexpaper源码的编译,去除logo和打印 (转)

    1.首先下载FlexPaper的源码.下载地址 2. 下载Adobe Flash Builder v4.5 现在最新是4.6了,在adobe网站木找到4.5下载,这里提供下4.5的种子文件 http: ...

  5. nvl

    NVL是Oracle PL/SQL中的一个函数.它的格式是NVL( string1, replace_with).它的功能是如果string1为NULL,则NVL函数返回replace_with的值, ...

  6. printf("%*s\n", 1, ""); 使用"printf();" 的格式化输出动态制定等宽度输出。

    #include <stdio.h> #include <string.h> int main() { const char the_text[] = "this i ...

  7. 《一课经济学》书摘笔记IV

    有出口,才有钱进口:没有进口,就没有机会出口,因为外国人没有美元可以用来买美国的产品.要想扩大出口,就必须有更多的进口,否则收不到货款.要想压缩进口,出口也会随之被压缩.所以,当我们决定减少进口的时候 ...

  8. Java中的匿名类

    我们知道接口一般用于定义一种规范或操作协议,然后子类实现接口的所有功能.如下面的简单代码: 定义IMessage接口 package org.lyk.entities; public interfac ...

  9. JAVA中的定时调度(Timer和TimerTask)

    某些时候我们需要定时去完成一些任务,这里举一个例子:我们需要在3秒钟后打印当前系统时间,此后每隔5秒重复此操作.代码如下: import java.util.TimerTask; import jav ...

  10. AndroidManifest.xml 屏幕上下反转

    通常我们的应用只会设计成横屏或者竖屏,锁定横屏或竖屏的方法是在AndroidManifest.xml 文件中设定属性android:screenOrientation为"landscape& ...