SVN与TortoiseSVN实战:冲突详解(二)
来源:互联网 发布:捡宝贝淘宝u站 编辑:程序博客网 时间:2024/06/17 03:54
SVN与TortoiseSVN实战:冲突详解(二)
硬广:《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实战:冲突详解(二)
- SVN与TortoiseSVN实战
- 二、svn--TortoiseSVN使用
- SVN(TortoiseSVN)SVN(TortoiseSVN)
- 二:SVN操作安装(Tortoisesvn)
- SVN(TortoiseSVN)详细教程(三)--SVN更新及如何解决冲突文件
- SVN(TortoiseSVN)详细教程(二)--TortoiseSVN Client基础操作
- Windows下SVN命令行工具使用详解(附加TortoiseSVN)
- Windows下SVN命令行工具使用详解(附加TortoiseSVN)
- SVN与TortoiseSVN的使用
- svn 总结(二)——冲突
- SVN冲突解决详解
- SVN冲突解决详解
- svn冲突问题详解
- svn服务器搭建与使用(VisualSVN+TortoiseSVN)
- tortoiseSVN搭建Windows SVN服务器详解
- VN与TortoiseSVN实战:TortoiseSVN新建及合并分支
- c++实战开发详解(二)类与对象
- LeetCode OJ Letter Combinations of a Phone Number
- LeetCode OJ Add Two Numbers
- LeetCode OJ Reverse Integer
- COJ--1541: There is No Alternative
- boost xpressive简明用法
- SVN与TortoiseSVN实战:冲突详解(二)
- JAVA创建单例的5中常见方式及比较
- LeetCode OJ Pow(x, n)
- jdbC连接到数据库
- LeetCode OJ Merge k Sorted Lists
- mybatis报错java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
- UVa 10375 - Choose and divide
- 显隐转换,虚成员和抽象成员
- LeetCode OJ Remove Nth Node From End of List