来源:http://blog.csdn.net/wn_hello/article/details/47295259

svn log          展示给你主要信息:每个版本附加在版本上的作者与日期信息和所有路径修改。
 svn diff          显示特定修改的行级详细信息。
 svn cat          取得在特定版本的某一个文件显示在当前屏幕。
 svn list          显示一个目录在某一版本存在的文件。

找出一个文件或目录的历史信息,使用svn log命令,svn log将会提供你一条记录,包括:谁对文件或目录作了修改、哪个修订版本作了修改、修订版本的日期和时间、还有如果你当时提供了日志信息,也会显示。

$ svn log
------------------------------------------------------------------------
r3 | sally | Mon, 15 Jul 2002 18:03:46 -0500 | 1 line
Added include lines and corrected # of cheese slices.
------------------------------------------------------------------------
r2 | harry | Mon, 15 Jul 2002 17:47:57 -0500 | 1 line
Added main() methods.
------------------------------------------------------------------------
r1 | sally | Mon, 15 Jul 2002 17:40:08 -0500 | 1 line
Initial import
------------------------------------------------------------------------
[/pre]注意日志信息缺省根据时间逆序排列,如果希望察看特定顺序的一段修订版本或者单一版本,使用--revision(-r) 选项:
$ svn log -r 5:19    # shows logs 5 through 19 in chronological order
$ svn log -r 19:5    # shows logs 5 through 19 in reverse order
$ svn log -r 8       # shows log for revision 8

也可以检查单个文件或目录的日志历史,举个例子:
$ svn log foo.c

$ svn log http://foo.com/svn/trunk/code/foo.c

[/pre]这样只会显示这个工作文件(或者URL)做过修订的版本的日志信息。

如果你希望得到目录和文件更多的信息,你可以对svn log命令使用--verbose (-v)开关,因为Subversion允许移动和复制文件和目录,所以跟踪路径修改非常重要,在详细模式下,svn log输出中会包括一个路径修改的历史:
$ svn log -r 8 -v
------------------------------------------------------------------------
r8 | sally | 2002-07-14 08:15:29 -0500 | 1 line
Changed paths:
M /trunk/code/foo.c
M /trunk/code/bar.h
A /trunk/code/doc/README
Frozzled the sub-space winch.
------------------------------------------------------------------------
[/pre]svn log也有一个--quiet (-q)选项,会禁止日志信息的主要部分,当与--verbose结合使用,仅会显示修改的文件名。
为什么svn log给我一个空的回应?
当使用Subversion一些时间后,许多用户会遇到这种情况:
$ svn log -r 2
------------------------------------------------------------------------
$
[/pre]乍一看,好像是一个错误,但是想一下修订版本号是作用在版本库整体之上的,如果你没有提供路径,svn log会使用当前目录作为默认的目标,所以,作为结果,如果你对一个本身和子目录在指定版本到现在没有做过修改的目录运行这个命令,你会得到空的日志。如果你希望察看某个版本做的修改的日志,只需要直接告诉svn log使用版本库顶级的目录作为参数,例如svn log -r 2 http://svn.collab.net/repos/svn
检查历史修改的详情
我们已经看过svn diff—使用标准区别文件格式显示区别,它在提交前用来显示本地工作拷贝与版本库的区别。
事实上,svn diff种不同的用法:

  • 检查本地修改
  • 比较工作拷贝与版本库
  • 比较版本库与版本库

比较本地修改
像我们看到的,不使用任何参数调用时, svn diff 将会比较你的工作文件与缓存在.svn的“原始”拷贝:
$ svn diff
Index: rules.txt
===================================================================
--- rules.txt    (revision 3)
+++ rules.txt    (working copy)
@@ -1,4 +1,5 @@
Be kind to others
Freedom = Responsibility
Everything in moderation
-Chew with your mouth open
+Chew with your mouth closed
+Listen when others are speaking
$
[/pre] 比较工作拷贝和版本库
如果传递一个--revision(-r)参数,你的工作拷贝会与指定的版本比较。
$ svn diff -r 3 rules.txt
Index: rules.txt
===================================================================
--- rules.txt    (revision 3)
+++ rules.txt    (working copy)
@@ -1,4 +1,5 @@
Be kind to others
Freedom = Responsibility
Everything in moderation
-Chew with your mouth open
+Chew with your mouth closed
+Listen when others are speaking
$
[/pre] 比较版本库与版本库
如果通过--revision (-r)传递两个通过冒号分开的版本号,这两个版本会进行比较。
$ svn diff -r 2:3 rules.txt
Index: rules.txt
===================================================================
--- rules.txt    (revision 2)
+++ rules.txt    (revision 3)
@@ -1,4 +1,4 @@
Be kind to others
-Freedom = Chocolate Ice Cream
+Freedom = Responsibility
Everything in moderation
Chew with your mouth open
$
[/pre]与前一个修订版本比较更方便的办法是使用--change (-c):
$ svn diff -c 3 rules.txt
Index: rules.txt
===================================================================
--- rules.txt    (revision 2)
+++ rules.txt    (revision 3)
@@ -1,4 +1,4 @@
Be kind to others
-Freedom = Chocolate Ice Cream
+Freedom = Responsibility
Everything in moderation
Chew with your mouth open
$
[/pre]最后,即使你在本机没有工作拷贝,还是可以比较版本库的修订版本,只需要在命令行中输入合适的URL:
$ svn diff -c 5  http://svn.example.com/repos/example/trunk/text/rules.txt

$
[/pre] 浏览版本库
通过 svn cat 和 svn list ,你可以在未修改工作修订版本的情况下查看文件和目录的内容,实际上,你甚至也不需要有一个工作拷贝。
              svn cat            
如果你只是希望检查一个过去的版本而不希望察看它们的区别,使用 svn cat :
$ svn cat -r 2 rules.txt
Be kind to others
Freedom = Chocolate Ice Cream
Everything in moderation
Chew with your mouth open
$
[/pre]你可以重定向输出到一个文件:
$ svn cat -r 2 rules.txt > rules.txt.v2
$
[/pre]               svn list            
svn list 可以在不下载文件到本地目录的情况下来察看目录中的文件:
$ svn list  http://svn.collab.net/repos/svn
README
branches/
clients/
tags/
trunk/
[/pre]如果你希望察看详细信息,你可以使用--verbose(-v) 参数:
$ svn list -v  http://svn.collab.net/repos/svn
  20620 harry            1084 Jul 13  2006 README
  23339 harry                 Feb 04 01:40 branches/
  21282 sally                 Aug 27 09:41 developer-resources/
  23198 harry                 Jan 23 17:17 tags/
  23351 sally                 Feb 05 13:26 trunk/
[/pre]这些列告诉你文件和目录最后修改的修订版本、做出修改的用户、如果是文件还会有文件的大小,最后是修改日期和项目的名字。
警告
没有任何参数的 svn list 命令缺省使用当前工作拷贝的 版本库URL ,而 不是 本地工作拷贝的目录。毕竟,如果你希望列出本地目录,你只需要使用 ls (或任何合理的非UNIX等价物)。
获得旧的版本库快照
除了以上的命令,你可以使用带参数--revision的 svn update 和 svn checkout 来使整个工作拷贝“回到过去” [8]
$ svn checkout -r 1729 # Checks out a new working copy at r1729

$ svn update -r 1729 # Updates an existing working copy to r1729

[/pre] 提示
许多Subversion新手使用前面的 svn update 实例来“回退”修改,但是你不能提交修改,你获得有新修订版本的过时工作拷贝也是没有用的。关于如何“回退”,我们可以看 “找回删除的项目”一节 。
最后,如果你构建了一个版本,并且希望从Subversion打包文件,但是你不希望有讨厌的.svn目录,这时你可以导出版本库的一部分文件而没有.svn目录。就像 svn update 和 svn checkout ,你也可以传递--revision选项给 svn export :
$ svn export  http://svn.example.com/svn/repos1  # Exports latest revision

$ svn export  http://svn.example.com/svn/repos1  -r 1729
# Exports revision r1729

[/pre]

SVN使用log,list,cat,diff命令查看特定文件版本信息相关推荐

  1. oracle RAC信息,Oracle 查看 RAC GI 版本信息

    在RAC 环境中,可以使用如下几个命令查看GI的版本信息: [oracle@rac-11gR2-N1 ~]$ crsctl query crs softwareversion Oracle Clust ...

  2. linux用cat命令创建一个文件,用cat在命令行创建文件

    我们常常使用cat命令来将某个文件的内容一口气打印出来查看,其实,cat命令还可以用来在命令行创建文件. cat在命令行创建文件与vi不同,只能单行编辑,换行之后就不能再编辑前面的行:与echo编辑多 ...

  3. windows用 tree命令查看目录文件夹结构

    windows用 tree命令查看目录文件夹结构 ## 查看帮助 tree --helptree --dirsfirst --filelimit 6 -h -t –dirsfirst 目录优先展示 – ...

  4. 利用adb命令查看apk文件包名的一些方法

    利用adb命令查看apk文件包名的一些方法 前提是已经下载android SDK并配好环境变量! 在控制台输入命令$adb shell pm 可以看到adb shell pm的相关用法,详细信息请自己 ...

  5. lsof查看进程占用文件_lsof命令查看进程socket相关信息

    1.释义 查看进程打开的文件.目录,还可以查看进程监听的端口等socket相关的信息 2.系统帮助 lsof: illegal option character: - lsof: -e not fol ...

  6. linux 查看文件哈希码,使用linux的sha1sum命令查看效验文件哈希值命令

    服务器 今天小编给大家分享的是使用linux的sha1sum命令查看效验文件哈希值命令,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧.一定会有所收获的哦. sha1 ...

  7. cmd怎么查看当前静态路由_win7系统利用命令查看ip路由表完整信息的操作方法

    很多小伙伴都遇到过对win7系统利用命令查看ip路由表完整信息进行设置的困惑吧,一些朋友看过网上对win7系统利用命令查看ip路由表完整信息设置的零散处理方法,并没有完完全全明白win7系统利用命令查 ...

  8. 使用ls命令查看Linux的目录结构,linux ls命令查看目录文件详解

    首页 > Linux教程 > 常用命令 > ls 查看目录文件 linux ls命令查看目录文件详解 linux中ls命令用来查看目录中的所有文件和子目录,可选的参数比较多,本文筛选 ...

  9. linux zcat 使用方法,使用linux的zcat命令查看压缩文件的内容

    服务器 本篇文章和大家了解一下使用linux的zcat命令查看压缩文件的内容.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. zcat命令用于不真正解压缩文件,就能显示压缩包中文件的 ...

最新文章

  1. (四)创建ROS程序包(就是软件包)
  2. Java编程字符逆序输出_用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在屏幕上。...
  3. Android onLoadFinished与onLoaderReset
  4. workerman高并发异步mysql_workerman怎么实现高并发
  5. 对称机密算法与非对称机密算法
  6. XML简介和使用AFNetworking解析XML案例
  7. 我的购机(手机)之路
  8. 职称计算机ppt考试试题,职称计算机考试PPT试题
  9. 万万没想到 Java 中最重要的关键字竟然是这个!
  10. Mysql的远程连接
  11. [转载]CRC校验原理
  12. AccessHelper
  13. Go 企业级框架 Revel 版全新发布
  14. 计算机视觉检测 白皓月,基于深度神经网络的视线跟踪技术研究
  15. Windows XP系统中如何屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc键序列
  16. SEO挖掘核心关键词的策略技巧
  17. getOutputStream() has already been called for this response 当前响应已经调用了方法getOutputStream()
  18. 易语言 如何调用麦谈帮API接口?
  19. Android——Tcp服务端实现
  20. [源码和文档分享]基于JSP实现的试题库管理系统

热门文章

  1. 22个激活函数,ReLU、RReLU、LeakyReLU、PReLU、Sofplus、ELU、CELU、SELU、GELU、ReLU6、Sigmoid、Tanh、Softsign、Hardtanh等
  2. SimpleDateFormat 按照不同要求去改写时间的格式,或者把时间串变成date类型
  3. 获取对话框当前cfont_自绘对话框
  4. STL Vector使用例程
  5. 【caffe-MATLAB】自己编译faster-rcnn的MATLAB版本
  6. QString与LPCWSTR互转
  7. Kafka集成Spring-AcknowledgeMessageListener接口实现
  8. Icomparer和Icomparable集合排序
  9. 市场规模占全国4成,广东物联网市场发展强劲
  10. [翻译]现代Linux系统上的栈溢出攻击【转】