posts - 262,  comments - 221,  trackbacks - 0

          【6】查看項目的版本控制信息


          在上一節,我們成功地為項目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 
          Date2009-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

          可以看到雖然同樣都是info子命令,但是兩者的執行結果完全不同。實際上他們的輸出主要包括

           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 
          Date2009-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。


          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2009-12-08 10:09 Paul Lin 閱讀(452) 評論(0)  編輯  收藏 所屬分類: 項目管理
          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 浮梁县| 大邑县| 牟定县| 临泽县| 宽城| 阿巴嘎旗| 浦北县| 武夷山市| 邢台县| 耒阳市| 阳江市| 潜山县| 浦北县| 上饶县| 宿松县| 林甸县| 灵石县| 吕梁市| 隆尧县| 玉屏| 张家川| 南宁市| 盐城市| 永清县| 霸州市| 赣榆县| 肇州县| 商南县| 元阳县| 雅安市| 曲沃县| 宜城市| 沾化县| 渭源县| 霍山县| 屏山县| 岫岩| 蓝田县| 曲周县| 浮山县| 新巴尔虎左旗|