描述:
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比较两个内容相同,但祖先历史不同的对象会看到所有的内容被删除又再次添加)时就会考虑路径的祖先。
用法:
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的“原始”拷贝
svn diff
2、显示工作文件和服务器版本2的不同
svn diff -r 2
3、显示分支br1的版本2和版本3的不同
svn diff /www/wwwroot/www.rocschool.com/app -r 2:3
4、显示rocschool.php文件在2版本和6版本的区别
svn diff -r 2:6 rocschool.php
5、对比分支rocschool和trunk区别(2个url)
svn diff file:///home/wwl/svn_repos/branches/rocschool file:///www/wwwroot/www.rocschool.com/trunk
6、直接使用svn diff 显示的不是很清晰,如果本机装了其他的图形diff工具(例如meld)命令行调用
svn diff --diff-cmd meld ...
7、svn在1.7版本支持了git方式显示diff
svn diff --git ...