【6】查看項目的版本控制信息
可以看到雖然同樣都是info子命令,但是兩者的執行結果完全不同。實際上他們的輸出主要包括
在上一節,我們成功地為項目ECoupon添加了版本控制功能,現在我們想看看添加了版本控制功能的項目,到底有什么不同。應該如何做呢?
還記得我們在《SVN In Action (1)》的第2節--訪問版本庫中那個命令列表嗎?其中的第2列就是“顯示版本信息”。我們可以看到和svn list以及svnlook tree命令一樣,SVN同樣為服務端和客戶端提供了兩個命令。它們就是:
A.svn info:用于客戶端查看版本信息
B.svnlook info:用于服務端查看版本信息
為了讓大家有一個感性的認識,我先演示這兩個命令的輸出:
C:\>svn info E:\Temp\ECoupon
Path: E:\Temp\ECoupon
URL: http://localhost:8000/svn/Workspace/Ericsson/ECoupon
Repository Root: http://localhost:8000/svn/Workspace
Repository UUID: 06f3a259-b3b5-ff4e-9a70-52e8834f1976
Revision: 5
Node Kind: directory
Schedule: normal
Last Changed Author: qlinpen
Last Changed Rev: 4
Last Changed Date: 2009-12-07 17:33:17 +0800 (星期一, 07 十二月 2009)
C:\>svnlook info C:\Develop\MyRepository\Workspace \Ericsson\ECoupon
qlinpen
2009-12-07 17:34:54 +0800 (星期一, 07 十二月 2009)
25
create project Newsletter
A.svn info:顯示本地或遠程條目(Item)指定版本的信息
B.svnlook info:顯示指定版本的條目(Item)的作者、時間戳、日志大小、日志內容
對于svn info,它可以顯示的內容非常多,有:
•Path
•Name
•URL
•RepositoryRoot
•RepositoryUUID
•Revision
•NodeKind
•LastChangedAuthor
•LastChangedRevision
•LastChangedDate
•LockToken
•LockOwner
•LockCreated(date)
•LockExpires(date)
除此之外還有一些額外的選項。可以看到svn info命令比svnlook info命令好用多了!實際上svn info命令不單可以用于顯示本地條目信息,也可以用于顯示遠程(版本庫)條目的信息:C:\>svn info http://localhost:8000/svn/Workspace/Ericsson/ECoupon
Path: ECoupon
URL: http://localhost:8000/svn/Workspace/Ericsson/ECoupon
Repository Root: http://localhost:8000/svn/Workspace
Repository UUID: 06f3a259-b3b5-ff4e-9a70-52e8834f1976
Revision: 5
Node Kind: directory
Last Changed Author: qlinpen
Last Changed Rev: 4
Last Changed Date: 2009-12-07 17:33:17 +0800 (星期一, 07 十二月 2009)
可以看到除了第一個輸出Path有所不同之外,其它版本信息都是和本地工作拷貝(Working Copy)一致的。svn info命令不單可以用于顯示目錄的信息,對于文件同樣也可以。而對于svnlook info命令,依然要記得的兩點是:
A.只能使用本地路徑形式作為svnlook info命令的參數,不能使用URL
B.可以使用PATH_IN_REPOS來限制只顯示父路徑下某個子路徑的信息
【7】查看項目的實時狀態信息
到目前為止,我們的ECoupon項目還是一個空的目錄,下面我們將為它添加若干內容:doc目錄、src目錄、WebRoot目錄。手工拷貝這三個目錄到E:\Temp\ECoupon目錄下。既然我們的項目已經加入了版本控制功能,那么現在我們的項目有了新的資源,SVN如何得知這種改變呢?或者說其他人如何知道呢?
還是回到我們的《SVN In Action (1)》系列的第2節--訪問版本庫,可以看到在那個命令列表的最后一列上邊有一個:svn status命令。對了!就是這個命令。
svn status:顯示本地工作拷貝和目錄的狀態信息
請注意的一點就是和svn list、svn info不同,svn status只能使用本地路徑作為參數,也就是說你不能使用諸如:svn status http://...這樣的命令。
svn status命令可以搭配不同的參數來顯示不同的信息:
A.如果不加任何參數,將顯示所有本地修改的條目狀態信息
B.如果配合--show-updates參數,將額外顯示所有本地out-of-date的條目信息
C.如果配合--verbose參數,將顯示詳盡的狀態信息,包括所有沒有改變的條目
D.如何配合--quiet參數,將只顯示所有本地修改的條目的簡介信息
和svn info命令相同,svn status會輸出一大堆的內容。svn status的輸出中,需要特別注意的是每一行的前6個字符,它們分別表示了6種不同的信息。現在我們需要關注的是前3個
A.列1:顯示該條目是屬于新增(A)、修改(M)、還是被刪除(D)或者其它的改變
B.列2:顯示該條目(文件、目錄)屬性的狀態
C.列3:顯示該條目是否處于“鎖定”狀態(L)
現在我們來執行一下svn status命令
C:\>svn status E:\Temp\ECoupon
? E:\Temp\ECoupon\WebRoot
? E:\Temp\ECoupon\doc
? E:\Temp\ECoupon\src
很明顯地我們看到在新增加的三個目錄前面都有一個?,這說這三個目錄都還沒有加入版本控制。如果需要再詳細地輸出,只需要添加:--verbose參數
C:\>svn status E:\Temp\ECoupon --verbose
5 4 qlinpen E:\Temp\ECoupon
? E:\Temp\ECoupon\WebRoot
? E:\Temp\ECoupon\doc
? E:\Temp\ECoupon\src
5 4 qlinpen E:\Temp\ECoupon\my_VPN.txt
如果我們想查看除了本地修改之外,版本庫中是不是有新的修改出現,而我們尚未同步到本地工作拷貝的,只需要添加:--show-updates參數
C:\>svn status E:\Temp\ECoupon --verbose --show-updates
? E:\Temp\ECoupon\doc
5 4 qlinpen E:\Temp\ECoupon\my_VPN.txt
? E:\Temp\ECoupon\src
? E:\Temp\ECoupon\WebRoot
5 4 qlinpen E:\Temp\ECoupon
Status against revision: 5
可以看到和上一個命令執行結果相比,多出了一句話“Status against revision: 5 ”。這是因為:
A.當svn status命令不帶任何參數或只帶除了--show-updates外的其他參數時,并不訪問版本庫。而是和本地的.svn目錄比較
B.當svn status命令搭配--show-updates參數后,將會訪問版本庫。
我們可以看到ECoupon目錄和my_VPN.txt文件都是在版本號為4的時候創建的,當前版本號是5。
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
29 | 30 | 1 | 2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 11 | 12 | |||
13 | 14 | 15 | 16 | 17 | 18 | 19 | |||
20 | 21 | 22 | 23 | 24 | 25 | 26 | |||
27 | 28 | 29 | 30 | 31 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
常用鏈接
留言簿(21)
隨筆分類
- J2EE 框架(9)
- J2EE基礎(4)
- J2SE(43)
- Java 工具(5)
- Oracle Concept(4)
- Oracle SQL/PLSQL(9)
- Oracle 開發(13)
- Oracle 管理(4)
- Oracle 調優
- Oracle 錯誤診斷
- RoR(19)
- UML(3)
- Unix / Linux(13)
- Web基礎(19)
- 其它技術(7)
- 感悟(3)
- 雜項(7)
- 架構與性能(8)
- 模式與重構(19)
- 灌水(8)
- 電影與音樂(16)
- 走過的路(1)
- 軟件過程與軟件方法(3)
- 陽光戶外(2)
- 項目管理(36)
隨筆檔案
- 2012年2月 (3)
- 2011年11月 (4)
- 2011年10月 (1)
- 2011年9月 (2)
- 2011年8月 (2)
- 2011年7月 (5)
- 2011年6月 (3)
- 2011年5月 (1)
- 2011年4月 (1)
- 2011年3月 (3)
- 2011年1月 (1)
- 2010年12月 (1)
- 2010年11月 (5)
- 2010年10月 (3)
- 2010年9月 (1)
- 2010年7月 (1)
- 2010年6月 (1)
- 2010年5月 (4)
- 2010年4月 (9)
- 2010年3月 (19)
- 2010年2月 (8)
- 2010年1月 (3)
- 2009年12月 (34)
- 2009年11月 (1)
- 2009年10月 (2)
- 2009年7月 (4)
- 2009年6月 (5)
- 2009年5月 (3)
- 2009年4月 (2)
- 2009年3月 (1)
- 2009年2月 (5)
- 2009年1月 (5)
- 2008年12月 (13)
- 2008年11月 (4)
- 2008年10月 (1)
- 2008年9月 (6)
- 2008年8月 (5)
- 2008年7月 (3)
- 2008年6月 (31)
- 2008年5月 (10)
- 2008年4月 (9)
- 2008年3月 (7)
- 2008年2月 (4)
- 2008年1月 (19)
BlogJava熱點博客
好友博客
搜索
最新評論

- 1.?re: 【Java基礎專題】編碼與亂碼(01)---編碼基礎[未登錄]
- 666666666666666666666這幾天正在做個類似工程編碼出現錯誤
- --李
- 2.?re: 【Java基礎專題】IO與文件讀寫---使用Apache commons IO簡化文件讀寫
- 不錯
- --阿斯蘭
- 3.?re: 【Java基礎專題】編碼與亂碼(03)----String的toCharArray()方法
- 多謝分享
- --thx
- 4.?re: 【Java基礎專題】編碼與亂碼(05)---GBK與UTF-8之間的轉換
- 評論內容較長,點擊標題查看
- --karl
- 5.?re: 【Java基礎專題】編碼與亂碼(01)---編碼基礎[未登錄]
- 謝謝,幫了我大忙!
- --小龍