博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
svn diff 详解
阅读量:5220 次
发布时间:2019-06-14

本文共 3825 字,大约阅读时间需要 12 分钟。

 

 

UI版:

 

 

 

如果多人编辑同一段代码,常常容易出现冲突的情况:

 

 如果出现冲突,我们如何解决他呢?

1 可以选择使用自己的文件mime file,也可以使用 他们的文件 their file

2 解决冲突, 而不是逃避。 在上图 Mergerd 部分直接编辑即可:

编辑完毕,然后 选择“Marked as resolved” 即可

 

其中红色块表示是冲突,是必须要处理的。如果不处理冲突,那么ctrl+s 会提示 :

 

出现unresolved conflicts,即

这个是必须解决的,否则 冲突会一直保留。 冲突解决完毕,下面的merged部分的红色会消失。  否则表示冲突没有解决,是无法执行 “mark as resolved”操作的。

 

 

圆圈表示空行,

— 表示左边的版本的内容

+ 表示右边的版本的内容

<=> 表示移动的内容, 这个其实没什么用

 

灰色部分表示原来是没有的。

(左边)褚红色的表示被修改的内容,——   这里一定是修改而不是新增 ———— 这个只会出现在左边,也就是被修改的部分。

橘黄色的表示 空行或空的内容

黄色(或者不知道是否可以说是浅黄色)的表示 新增或修改的内容。 —— 没错, 这回包括了新增 和修改。

浅紫色表示 修改的行中, 没有发生变的部分 —— 新增的不会有浅紫色

白色, 当然表示没有发生任何变化的部分

红色: 表示冲突, 通常,左右两边都会出现红色。其他颜色是可以忽视的,但是红色必须正确处理,否则代码会保留冲突!!

 

总结, 除了黑色的字体颜色之外,

 

左边(原文件,或者说新文件) 可能出现的颜色有:

上面提及的颜色都可能出现

 

右边(新文件) 可能出现的颜色有:

白色

黄色  黄色,一律表示发生变化的内容, 以单词为单位(这里面的单词是java的变量名), 以 . , ; /  ';" 为分隔符。

浅紫色

灰色

红色

 

 

可以看到, svn 的diff 功能其实是不完美的, 比较,常常出现不准确的情况, 比如

 

下面是 文本版diff 说明,参照 : http://www.xuebuyuan.com/2028115.html 

在冲突解决一节结束后,我们的main.c文件的内容如下  1 #include 
2 #include "add.h" 3 #include "sub.h" 4 5 int main() 6 { 7 printf("5 + 10 = %d.\n",add(5,10)); 8 printf("15 - 10 = %d.\n",sub(15,10)); 9 //kris's test 10 printf("kris: 12 + 28 = %d.\n",add(12,28)); 11 //sally's test 12 printf("sally: 60 - 33 = %d.\n",sub(60,33)); 13 return 0; 14 }下面,我们做一些修改,具体如下 1 #include
2 #include "add.h" 3 #include "sub.h" 4 5 int main() 6 { 7 printf("5 + 10 = %d.\n",add(5,10)); 8 printf("15 - 10 = %d.\n",sub(15,10)); 9 //kris's test 10 printf("kris: 32 + 28 = %d.\n",add(32,28)); 11 printf("kris: 15 - 10 = %d.\n",sub(15,10)); 12 //sally's test 13 printf("sally: 60 - 33 = %d.\n",sub(60,33)); 14 return 0; 15 }修改完后,调用svn diff命令,会有如下的输出,下面就说说输出中各部分的意思。root@letuknowit:/home/kris/calc/trunk# svn diff main.cIndex: main.c===================================================================--- main.c (revision 8)+++ main.c (working copy)@@ -7,7 +7,8 @@ printf("5 + 10 = %d.\n",add(5,10)); printf("15 - 10 = %d.\n",sub(15,10)); //kris's test- printf("kris: 12 + 28 = %d.\n",add(12,28));+ printf("kris: 32 + 28 = %d.\n",add(32,28));+ printf("kris: 15 - 10 = %d.\n",sub(15,10)); //sally's test printf("sally: 60 - 33 = %d.\n",sub(60,33)); return 0;Index: main.csvn diff可以查看当前工作拷贝中所有的被修改的文件,对于每个文件的diff输出部分由Index: 文件名的形式进行区分。等于号后面的内容就是关于main.c文件的diff情况了。--- main.c (revision 8)+++ main.c (working copy)---打头的是原始文件,也就是版本库中的最新版本,或者理解为修改前的文件+++ 打头的是目标文件,这个就是你修改后的版本@@ -7,7 +7,8 @@这里的-和+分别表示原始文件和目标文件,7,7表示从第7行开始的7行,-7,7就是原始文件的从第7行开始的7行内容,+7,8的意思类似,表示目标文件从第7行开始的8行内容。结合起来理解就是:目标文件从第7行开始的8行内容和原始文件的从第7行开始的7行内容之间存在差异 printf("5 + 10 = %d.\n",add(5,10)); printf("15 - 10 = %d.\n",sub(15,10)); //kris's test- printf("kris: 12 + 28 = %d.\n",add(12,28));+ printf("kris: 32 + 28 = %d.\n",add(32,28));+ printf("kris: 15 - 10 = %d.\n",sub(15,10)); //sally's test printf("sally: 60 - 33 = %d.\n",sub(60,33)); return 0;这个就是具体的差异情况了,前面的-号表示需要从原始文件中删除的行,+号表示目标文件中将要增加的行,-号开头的部分只属于原始文件,+号开头的部分只属于目标文件,其余的是两者相同的部分。 7 1 1 printf("5 + 10 = %d.\n",add(5,10)); 8 2 2 printf("15 - 10 = %d.\n",sub(15,10)); 9 3 3 //kris's test 10 4 - printf("kris: 12 + 28 = %d.\n",add(12,28)); 11 4 + printf("kris: 32 + 28 = %d.\n",add(32,28)); 12 5 + printf("kris: 15 - 10 = %d.\n",sub(15,10)); 13 5 6 //sally's test 14 6 7 printf("sally: 60 - 33 = %d.\n",sub(60,33)); 15 7 8 return 0;为了进一步了解@@ -7,7 +7,8 @@的意思,上面加上了行号等信息,第一列的数字是行号,后面两列的数字表示第几行。经过标注可以清晰的看出原始文件第7行开始的7行和目标文件第7行开始的8行内容了。

 

posted on
2016-07-08 16:36 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/FlyAway2013/p/5633331.html

你可能感兴趣的文章
静态变量数组实现LRU算法
查看>>
在SQL中怎么把一列字符串拆分为多列
查看>>
中文系统 上传file的input显示英文
查看>>
比callback更简洁的链式执行promise
查看>>
android permission
查看>>
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
事务备份还原分离附加
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>
[BSGS][哈希]luogu P3846 可爱的质数
查看>>
Python 第四十五章 MySQL 内容回顾
查看>>
iostat参数说明
查看>>
Python-Mac 安装 PyQt4
查看>>
实验2-2
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
服务器被疑似挖矿程序植入107.174.47.156,发现以及解决过程(建议所有使用sonatype/nexus3镜像的用户清查一下)...
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
java,多线程实现
查看>>