之前我们讲解了部分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完毕,请关注本节其他相关报道。
【编辑推荐】