svn diff 比较差异

描述:

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


显示两条路径的区别,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比较两个内容相同,但祖先历史不同的对象会看到所有的内容被删除又再次添加)时就会考虑路径的祖先。

用法:

句法 (Syntax)

svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:20test.php
简写:svn di

例子:

1、对比工作文件与缓存在.svn的“原始”拷贝

句法 (Syntax)

svn diff

2、显示工作文件和服务器版本2的不同

句法 (Syntax)

svn diff -r 2

3、显示分支br1的版本2和版本3的不同

句法 (Syntax)

svn diff /www/wwwroot/www.rocschool.com/app -r 2:3

4、显示rocschool.php文件在2版本和6版本的区别

句法 (Syntax)

svn diff -r 2:6 rocschool.php

5、对比分支rocschool和trunk区别(2个url)

句法 (Syntax)

svn diff file:///home/wwl/svn_repos/branches/rocschool file:///www/wwwroot/www.rocschool.com/trunk

6、直接使用svn diff 显示的不是很清晰,如果本机装了其他的图形diff工具(例如meld)命令行调用

句法 (Syntax)

svn diff --diff-cmd meld ...

7、svn在1.7版本支持了git方式显示diff

句法 (Syntax)

svn diff --git ...


上一主题 svn delete 删除 下一主题 svn export 目录树
  • 使用社交账号登录,本站支持
全部评论(0)