利用SVN子命令查看所有及特定文件版本信息
本文講解一下SVN使用SVN子命令 log,SVN子命令 list,SVN子命令cat,SVN子命令 diff查看所有及特定文件版本信息 ,下面是有關(guān)這些命令的具體介紹。
svn log 展示給你主要信息:每個(gè)版本附加在版本上的作者與日期信息和所有路徑修改。
svn diff 顯示特定修改的行級(jí)詳細(xì)信息。
svn cat 取得在特定版本的某一個(gè)文件顯示在當(dāng)前屏幕。
svn list 顯示一個(gè)目錄在某一版本存在的文件。
找出一個(gè)文件或目錄的歷史信息,使用SVN子命令 log命令,svn log將會(huì)提供你一條記錄,包括:誰(shuí)對(duì)文件或目錄作了修改、哪個(gè)修訂版本作了修改、修訂版本的日期和時(shí)間、還有如果你當(dāng)時(shí)提供了日志信息,也會(huì)顯示。
$ 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ù)時(shí)間逆序排列,如果希望察看特定順序的一段修訂版本或者單一版本,使用--revision(-r) 選項(xiàng):
$ 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
也可以檢查單個(gè)文件或目錄的日志歷史,舉個(gè)例子:
$ svn log foo.c…
$ svn log http://foo.com/svn/trunk/code/foo.c…
[/pre]這樣只會(huì)顯示這個(gè)工作文件(或者URL)做過(guò)修訂的版本的日志信息。
如果你希望得到目錄和文件更多的信息,你可以對(duì)SVN子命令 log使用--verbose (-v)開(kāi)關(guān),因?yàn)镾ubversion允許移動(dòng)和復(fù)制文件和目錄,所以跟蹤路徑修改非常重要,在詳細(xì)模式下,svn log輸出中會(huì)包括一個(gè)路徑修改的歷史:
$ 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也有一個(gè)--quiet (-q)選項(xiàng),會(huì)禁止日志信息的主要部分,當(dāng)與--verbose結(jié)合使用,僅會(huì)顯示修改的文件名。
為什么svn log給我一個(gè)空的回應(yīng)?
當(dāng)使用Subversion一些時(shí)間后,許多用戶會(huì)遇到這種情況:
$ svn log -r 2
------------------------------------------------------------------------
$
[/pre]乍一看,好像是一個(gè)錯(cuò)誤,但是想一下修訂版本號(hào)是作用在版本庫(kù)整體之上的,如果你沒(méi)有提供路徑,svn log會(huì)使用當(dāng)前目錄作為默認(rèn)的目標(biāo),所以,作為結(jié)果,如果你對(duì)一個(gè)本身和子目錄在指定版本到現(xiàn)在沒(méi)有做過(guò)修改的目錄運(yùn)行這個(gè)命令,你會(huì)得到空的日志。如果你希望察看某個(gè)版本做的修改的日志,只需要直接告訴svn log使用版本庫(kù)***的目錄作為參數(shù),例如svn log -r 2 http://svn.collab.net/repos/svn。請(qǐng)期待下節(jié)SVN子命令介紹。
【編輯推薦】
- Linux下不常用的SVN 命令大揭秘
- SVN客戶端常用命令專(zhuān)家全程講解
- Svn import子命令詳解
- SVN使用教程簡(jiǎn)單配置篇詳解
- Subversion checkout子命令使用詳解