名稱

svn log — 顯示提交日誌訊息。

概要

svn log [PATH]
svn log URL [PATH...]
svn log URL[@REV] [PATH...]

描述

預設目標是你的當前目錄的路徑,如果沒有提供參數,svn log會顯示當前目錄下的所有文件和目錄的日誌訊息,你可以通過指定路徑來精煉結果,一個或多個修訂版本,或者是任何兩個的組合。對於本地路徑的預設修訂版本範圍BASE:1

如果你只是指定一個URL,就會打印這個URL上所有的日誌訊息,如果新增部分路徑,只有這條路徑下的URL訊息會被打印,URL預設的修訂版本範圍是HEAD:1

svn log使用--verbose選項也會打印所有影響路徑的日誌訊息,使用--quiet選項不會打印日誌訊息正文字身(這與--verbose協調一致)。

每個日誌訊息只會打印一次,即使是那些明確請求不止一次的路徑,日誌會跟隨在拷貝過程中,使用--stop-on-copy可以關閉這個特性,可以用來監測分支點。

別名

改變

無2

是否訪問版本庫

選項

--revision (-r) REV
--quiet (-q)
--verbose (-v)
--targets FILENAME
--stop-on-copy
--incremental
--limit NUM
--xml
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir DIR

例子

你可以在最上層目錄運行svn log看到工作副本中所有修改的路徑的日誌訊息:

$ svn log
------------------------------------------------------------------------
r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line

Tweak.
------------------------------------------------------------------------
r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines
…

檢驗一個特定文件所有的日誌訊息:

$ svn log foo.c
------------------------------------------------------------------------
r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

Added defines.
------------------------------------------------------------------------
r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
…

如果你手邊沒有工作副本,你可以查看一個URL的日誌:

$ svn log http://svn.red-bean.com/repos/test/foo.c
------------------------------------------------------------------------
r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

Added defines.
------------------------------------------------------------------------
r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
…

如果你希望查看某個URL下面不同的多個路徑,你可以使用URL [PATH...]語法。

$ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c
------------------------------------------------------------------------
r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

Added defines.
------------------------------------------------------------------------
r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line

Added new file bar.c
------------------------------------------------------------------------
r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
…

當你想連接多個對日誌命令的調用結果,你會希望使用--incremental選項。svn log通常會在日誌訊息的開頭和每一小段間打印一行虛線,如果你對一段修訂版本運行svn log,你會得到下面的結果:

$ svn log -r 14:15
------------------------------------------------------------------------
r14 | ...

------------------------------------------------------------------------
r15 | ...

------------------------------------------------------------------------

然而,如果你希望收集兩個不連續的日誌訊息到一個文件,你會這樣做:

$ svn log -r 14 > mylog
$ svn log -r 19 >> mylog
$ svn log -r 27 >> mylog
$ cat mylog
------------------------------------------------------------------------
r14 | ...

------------------------------------------------------------------------
------------------------------------------------------------------------
r19 | ...

------------------------------------------------------------------------
------------------------------------------------------------------------
r27 | ...

------------------------------------------------------------------------

你可以使用incremental選項來避免兩行虛線帶來的混亂:

$ svn log --incremental -r 14 > mylog
$ svn log --incremental -r 19 >> mylog
$ svn log --incremental -r 27 >> mylog
$ cat mylog
------------------------------------------------------------------------
r14 | ...

------------------------------------------------------------------------
r19 | ...

------------------------------------------------------------------------
r27 | ...

--incremental選項為--xml提供了一個相似的輸出控制。

提示

如果你在特定路徑和修訂版本運行svn log,輸出結果為空

$ svn log -r 20 http://svn.red-bean.com/untouched.txt
------------------------------------------------------------------------

這只意味著這條路徑在那個修訂版本沒有修改,如果從版本庫的最上層目錄運行這個命令,或者是你知道那個修訂版本修改了那個文件,你可以明確的指定它:

$ svn log -r 20 touched.txt 
------------------------------------------------------------------------
r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line

Made a change.
------------------------------------------------------------------------