利用SVN子命令查看所有及特定文件版本信息
本文講解一下SVN使用SVN子命令 log,SVN子命令 list,SVN子命令cat,SVN子命令 diff查看所有及特定文件版本信息 ,下面是有關(guān)這些命令的具體介紹。
svn log 展示給你主要信息:每個版本附加在版本上的作者與日期信息和所有路徑修改。
svn diff 顯示特定修改的行級詳細信息。
svn cat 取得在特定版本的某一個文件顯示在當(dāng)前屏幕。
svn list 顯示一個目錄在某一版本存在的文件。
找出一個文件或目錄的歷史信息,使用SVN子命令 log命令,svn log將會提供你一條記錄,包括:誰對文件或目錄作了修改、哪個修訂版本作了修改、修訂版本的日期和時間、還有如果你當(dāng)時提供了日志信息,也會顯示。
$ 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]注意日志信息缺省根據(jù)時間逆序排列,如果希望察看特定順序的一段修訂版本或者單一版本,使用--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)開關(guān),因為Subversion允許移動和復(fù)制文件和目錄,所以跟蹤路徑修改非常重要,在詳細模式下,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)選項,會禁止日志信息的主要部分,當(dāng)與--verbose結(jié)合使用,僅會顯示修改的文件名。
為什么svn log給我一個空的回應(yīng)?
當(dāng)使用Subversion一些時間后,許多用戶會遇到這種情況:
$ svn log -r 2
------------------------------------------------------------------------
$
[/pre]乍一看,好像是一個錯誤,但是想一下修訂版本號是作用在版本庫整體之上的,如果你沒有提供路徑,svn log會使用當(dāng)前目錄作為默認的目標(biāo),所以,作為結(jié)果,如果你對一個本身和子目錄在指定版本到現(xiàn)在沒有做過修改的目錄運行這個命令,你會得到空的日志。如果你希望察看某個版本做的修改的日志,只需要直接告訴svn log使用版本庫***的目錄作為參數(shù),例如svn log -r 2 http://svn.collab.net/repos/svn。請期待下節(jié)SVN子命令介紹。
【編輯推薦】