之前我们讲解了部分SVN子命令的使用方法,本节简单介绍一下SVN子命令log的使用,SVN子命令log表示显示提交日志信息,下面我们看一下具体介绍吧。
 名称
 SVN子命令log—显示提交日志信息。
 概要
 svnlog[PATH]svnlogURL[PATH...]svnlogURL[@REV][PATH...]描述
 缺省目标是你的当前目录的路径,如果没有提供参数,svnlog会显示当前目录下的所有文件和目录的日志信息,你可以通过指定路径来精炼结果,一个或多个修订版本,或者是任何两个的组合。对于本地路径的缺省修订版本范围BASE:1。
 如果你只是指定一个URL,就会打印这个URL上所有的日志信息,如果添加部分路径,只有这条路径下的URL信息会被打印,URL缺省的修订版本范围是HEAD:1。
 SVN子命令log使用--verbose选项也会打印所有影响路径的日志信息,使用--quiet选项不会打印日志信息正文本身(这与--verbose协调一致)。
 每个日志信息只会打印一次,即使是那些明确请求不止一次的路径,日志会跟随在拷贝过程中,使用--stop-on-copy可以关闭这个特性,可以用来监测分支点。
 选项
 --revision(-r)REV
 --quiet(-q)--verbose(-v)
 --targetsFILENAME
 --stop-on-copy
 --incremental
 --limitNUM
 --xml
 --usernameUSER
 --passwordPASS
 --no-auth-cache
 --non-interactive
 --config-dirDIR
 例子:
 你可以在顶级目录运行SVN子命令log看到工作拷贝中所有修改的路径的日志信息:
 $svnlog
 ------------------------------------------------------------------------
 r20|harry|2003-01-1722:56:19-0600(Fri,17Jan2003)|1lineTweak.
 ------------------------------------------------------------------------
 r17|sally|2003-01-1623:21:19-0600(Thu,16Jan2003)|2lines…检验一个特定文件所有的日志信息:
 $svnlogfoo.c
 ------------------------------------------------------------------------
 r32|sally|2003-01-1300:43:13-0600(Mon,13Jan2003)|1lineAddeddefines.
 ------------------------------------------------------------------------
 r28|sally|2003-01-0721:48:33-0600(Tue,07Jan2003)|3lines…如果你手边没有工作拷贝,你可以查看一个URL的日志:
 $svnloghttp://svn.red-bean.com/repos/test/foo.c
 ------------------------------------------------------------------------
 r32|sally|2003-01-1300:43:13-0600(Mon,13Jan2003)|1lineAddeddefines.
 ------------------------------------------------------------------------
 r28|sally|2003-01-0721:48:33-0600(Tue,07Jan2003)|3lines…如果你希望查看某个URL下面不同的多个路径,你可以使用URL[PATH...]语法。
 $svnloghttp://svn.red-bean.com/repos/test/foo.cbar.c
 ------------------------------------------------------------------------
 r32|sally|2003-01-1300:43:13-0600(Mon,13Jan2003)|1lineAddeddefines.
 ------------------------------------------------------------------------
 r31|harry|2003-01-1012:25:08-0600(Fri,10Jan2003)|1lineAddednewfilebar.c
 ------------------------------------------------------------------------
 r28|sally|2003-01-0721:48:33-0600(Tue,07Jan2003)|3lines…当你想连接多个对日志命令的调用结果,你会希望使用--incremental选项。SVN子命令log通常会在日志信息的开头和每一小段间打印一行虚线,如果你对一段修订版本运行svnlog,你会得到下面的结果:
 $svnlog-r14:15
 ------------------------------------------------------------------------
 r14|...
 ------------------------------------------------------------------------
 r15|...
 ------------------------------------------------------------------------
 然而,如果你希望收集两个不连续的日志信息到一个文件,你会这样做:
 $svnlog-r14>mylog$svnlog-r19>>mylog$svnlog-r27>>mylog$catmylog
 ------------------------------------------------------------------------
 r14|...------------------------------------------------------------------------------------------------------------------------------------------------
 r19|...------------------------------------------------------------------------------------------------------------------------------------------------
 r27|...------------------------------------------------------------------------
 你可以使用incremental选项来避免两行虚线带来的混乱:
 $svnlog--incremental-r14>mylog$svnlog--incremental-r19>>mylog$svnlog--incremental-r27>>mylog$catmylog
 -----------------------------------------------------------------------
 r14|...------------------------------------------------------------------------
 r19|...------------------------------------------------------------------------
 r27|...--incremental选项为--xml提供了一个相似的输出控制。
 提示
 如果你在特定路径和修订版本运行SVN子命令log,输出结果为空
 $svnlog-r20http://svn.red-bean.com/untouched.txt
 ------------------------------------------------------------------------
 这只意味着这条路径在那个修订版本没有修改,如果从版本库的顶级目录运行这个命令,或者是你知道那个修订版本修改了那个文件,你可以明确的指定它:
 $svnlog-r20touched.txt
 ------------------------------------------------------------------------
 r20|sally|2003-01-1722:56:19-0600(Fri,17Jan2003)|1lineMadeachange.本节介绍SVN子命令log完毕,请关注本节其他相关报道。
