SVN的子命令SVN diff功能介绍

开发 项目管理
本文向大家介绍一下SVN的子命令SVN diff,它的主要用法师比较两条路径的区别,在这里和大家分享一下,希望大家共同学习。

本节和大家讨论一下版本控制工具SVN的子命令SVN diff使用情况,包括子命令SVN diff概念的基本介绍,以及关于子命令SVN diff的一个实例介绍,下面我们就为大家一一讲解。

名称
svn diff — 比较两条路径的区别。

概要
diff [-c M | -r N[:M]] [TARGET[@REV]...]
diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] [PATH...]
diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]

描述
显示两条路径的区别,子命令SVN diff有三种使用方式:
运行svn diff以标准差别格式查看本地工作拷贝修改的内容。
显示TARGET在REV的样子时两个修订版本之间所作的修改,TARGET可以是任何工作拷贝路径或任何URL,如果TARGET是工作拷贝路径,则N缺省是BASE,而M是工作拷贝;如果是URL,则必须指定N,而M缺省是HEAD。“-c M”选项与“-r N:M”等价,其中N = M-1。使用“-c -M”则相反:“-r M:N”的意思是N = M-1。
显示在OLDREV的OLD-TGT和NEWREV的NEW-TGT之间的区别。如果提供PATH,则与OLD-TGT和NEW-TGT关联,将输出限制在那些路径。OLD-TGT和NEW-TGT可能是工作拷贝路经或URL[@REV]。如果没有指定,NEW-TGT缺省是OLD-TGT。“-r N”设置OLDREV缺省为N,而-r N:M设置OLDREV缺省为N,而NEWREV缺省为M。

svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]的简写方式。
svn diff -r N:M URL是svn diff -r N:M --old=URL --new=URL的简写。
svn diff [-r N[:M]] URL1[@N] URL2[@M]是 svn diff [-r N[:M]] --old=URL1 --new=URL2的简写。
TARGET是一个URL,然后可以使用前面提到的--revision或“@”符号来指定N和M。
如果TARGET是工作拷贝路径,则--revision选项的含义是:
--revision N:M
服务器比较 TARGET@N和TARGET@M。
--revision N
客户端比较TARGET@N和工作拷贝。
(无--revision)
客户端比较base和 TARGET的TARGET。
如果使用其他语法,服务器会比较URL1和URL2各自的N和M。如果省掉N或M,会假定为HEAD。
缺省情况下,svn diff忽略文件的祖先,只会比较两个文件的内容。如果你使用--notice-ancestry,比较修订版本(也就是,当你运行svn diff比较两个内容相同,但祖先历史不同的对象会看到所有的内容被删除又再次添加)时就会考虑路径的祖先。这是子命令SVN diff的描述。

选项
--revision (-r) ARG
--change (-c) ARG
--old ARG
--new ARG
--non-recursive (-N)
--diff-cmd CMD
--extensions (-x) "ARGS"
--no-diff-deleted
--notice-ancestry
--summarize
--force
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR

例子:
我们来看一下SVN子命令SVN diff的一个实例:比较BASE和你的工作拷贝(svn diff最经常的用法):
$ svn diff COMMITTERS
Index: COMMITTERS
===================================================================
--- COMMITTERS (revision 4404)
+++ COMMITTERS (working copy)
查看文件COMMITTERS在修订版本9115修改的内容:
$ svn diff -c 9115 COMMITTERS
Index: COMMITTERS
===================================================================
--- COMMITTERS (revision 3900)
+++ COMMITTERS (working copy)
察看你的工作拷贝对旧的修订版本的修改:
$ svn diff -r 3900 COMMITTERS
Index: COMMITTERS
===================================================================
--- COMMITTERS (revision 3900)
+++ COMMITTERS (working copy)
使用“@”语法与修订版本3000和35000比较:
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500
Index: COMMITTERS
===================================================================
--- COMMITTERS (revision 3000)
+++ COMMITTERS (revision 3500)…
使用范围符号来比较修订版本3000和3500(在这种情况下只能传递一个URL):
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS
Index: COMMITTERS
===================================================================
--- COMMITTERS (revision 3000)
+++ COMMITTERS (revision 3500)
使用范围符号比较修订版本3000和3500trunk中的所有文件:
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk         
使用范围符号比较修订版本3000和3500trunk中的三个文件:
$ svn diff -r 3000:3500 --old http://svn.collab.net/repos/svn/trunk COMMITTERS README HACKING         
如果你有工作拷贝,你不必输入这么长的URL:
$ svn diff -r 3000:3500 COMMITTERS
Index: COMMITTERS
===================================================================
--- COMMITTERS (revision 3000)
+++ COMMITTERS (revision 3500)
使用--diff-cmdCMD-x来指定外部区别程序
$ svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS
Index: COMMITTERS
===================================================================
0a1,2
> This is a test。子命令SVN diff讲解在这里就告一段落了,请关注本节的其他相关报道。

 【编辑推荐】

  1. Linux下不常用的SVN 命令大揭秘
  2. Svn import子命令详解
  3. SVN子命令SVN Update详解
  4. SVN使用教程简单配置篇详解
  5. Subversion checkout子命令使用详解 
责任编辑:佚名
相关推荐

2010-05-24 14:57:10

SVN子命令

2010-05-20 12:43:37

SVN Update命

2010-05-24 10:45:52

子命令Svn lock

2010-05-24 10:29:51

子命令Svn reve

2010-05-21 10:13:30

Svn import子

2010-05-24 12:53:38

子命令SVN merg

2010-05-24 15:23:41

SVN子命令add

2010-05-25 17:13:26

SVN子命令log

2010-05-24 15:23:41

SVN子命令add

2010-05-24 12:21:22

子命令SVN merg

2010-05-24 14:37:42

SVN子命令

2010-05-25 16:39:56

SVN中使用Git

2010-05-27 10:53:54

SVN目录结构

2010-05-27 14:02:04

SVN使用说明

2010-01-22 10:51:54

svn命令linux

2009-12-25 17:27:55

svn命令

2011-03-31 10:17:40

Linuxsvn命令

2010-05-27 19:04:01

SVN入门

2010-05-31 16:42:42

SVN权限配置

2010-05-31 09:59:15

Eclipse安装SV
点赞
收藏

51CTO技术栈公众号