詳解SVN子命令log用法
之前我們講解了部分SVN子命令的使用方法,本節(jié)簡單介紹一下SVN子命令log的使用,SVN子命令log表示顯示提交日志信息,下面我們看一下具體介紹吧。
名稱
SVN子命令log—顯示提交日志信息。
概要
svnlog[PATH]svnlogURL[PATH...]svnlogURL[@REV][PATH...]描述
缺省目標是你的當前目錄的路徑,如果沒有提供參數(shù),svnlog會顯示當前目錄下的所有文件和目錄的日志信息,你可以通過指定路徑來精煉結(jié)果,一個或多個修訂版本,或者是任何兩個的組合。對于本地路徑的缺省修訂版本范圍BASE:1。
如果你只是指定一個URL,就會打印這個URL上所有的日志信息,如果添加部分路徑,只有這條路徑下的URL信息會被打印,URL缺省的修訂版本范圍是HEAD:1。
SVN子命令log使用--verbose選項也會打印所有影響路徑的日志信息,使用--quiet選項不會打印日志信息正文本身(這與--verbose協(xié)調(diào)一致)。
每個日志信息只會打印一次,即使是那些明確請求不止一次的路徑,日志會跟隨在拷貝過程中,使用--stop-on-copy可以關(guān)閉這個特性,可以用來監(jiān)測分支點。
選項
--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…當你想連接多個對日志命令的調(diào)用結(jié)果,你會希望使用--incremental選項。SVN子命令log通常會在日志信息的開頭和每一小段間打印一行虛線,如果你對一段修訂版本運行svnlog,你會得到下面的結(jié)果:
$svnlog-r14:15
------------------------------------------------------------------------
r14|...
------------------------------------------------------------------------
r15|...
------------------------------------------------------------------------
然而,如果你希望收集兩個不連續(xù)的日志信息到一個文件,你會這樣做:
$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,輸出結(jié)果為空
$svnlog-r20http://svn.red-bean.com/untouched.txt
------------------------------------------------------------------------
這只意味著這條路徑在那個修訂版本沒有修改,如果從版本庫的頂級目錄運行這個命令,或者是你知道那個修訂版本修改了那個文件,你可以明確的指定它:
$svnlog-r20touched.txt
------------------------------------------------------------------------
r20|sally|2003-01-1722:56:19-0600(Fri,17Jan2003)|1lineMadeachange.本節(jié)介紹SVN子命令log完畢,請關(guān)注本節(jié)其他相關(guān)報道。
【編輯推薦】