1. 程式人生 > >svn status 列印工作拷貝檔案和目錄的狀態命令詳解

svn status 列印工作拷貝檔案和目錄的狀態命令詳解

名稱

svn status ― 列印工作拷貝檔案和目錄的狀態。

概要

svn status [PATH...]

描述

列印工作拷貝檔案和目錄的狀態。如果沒有引數,只會列印本地修改的專案(不會訪問版本庫),使用--show-updates選項,會新增工作修訂版本和伺服器過期資訊。使用--verbose會列印每個專案的完全修訂版本資訊。

輸出的前五列都是一個字元寬,每一列給出了工作拷貝專案的每一方面的資訊。

第一列指出一個專案的是新增、刪除還是其它的修改。

' '
沒有修改。

'A'
預定要新增的專案。

'D'
預定要刪除的專案。

'M'
專案已經修改了。

'R'
專案在工作拷貝中已經被替換了。

'C'
專案與從版本庫的更新衝突。

'X'
專案與外部定義相關。

'I'
專案被忽略(例如使用svn:ignore屬性)。

''
專案不在版本控制之下。

'!'
專案已經丟失(例如,你使用svn移動或者刪除了它)。這也說明了一個目錄不是完整的(一個檢出或更新中斷)。

'~'
專案作為一種物件(檔案、目錄或連結)納入版本控制,但是已經被另一種物件替代。

第二列告訴一個檔案或目錄的屬性的狀態。

' '
沒有修改。

'M'
這個專案的屬性已經修改。

'C'
這個專案的屬性與從版本庫得到的更新有衝突。

第三列只在工作拷貝鎖定時才會出現。

' '
專案沒有鎖定。

'L'
專案已經鎖定。

第四列只在預定包含歷史新增的專案出現。

' '
沒有歷史預定要提交。

'+'
歷史預定要伴隨提交。

第五列只在專案跳轉到相對於它的父目錄時出現(見[“轉換工作拷貝”一節])。

' '
專案是它的父目錄的孩子。

'S'
專案已經轉換。

過期資訊出現在第八列(只在使用--show-updates選項時出現)。

' '
這個專案在工作拷貝是最新的。

'*'
在伺服器這個專案有了新的修訂版本。

餘下的欄位是可變得寬度且使用空格分隔,如果使用--show-updates--verbose選項,工作修訂版本是下一個欄位。

如果傳遞--verbose選項,最後提交的修訂版本和最後的提交作者會在後面顯示。

工作拷貝路徑永遠是最後一個欄位,所以它可以包括空格。

別名

stat, st

變化

是否訪問版本庫

只有使用--show-updates時會訪問

選項


--show-updates (-u)
--verbose (-v)
--non-recursive (-N)
--quiet (-q)
--no-ignore
--username USER
--password PASS
--no-auth-cache
--non-interactive
--config-dir

例子

這是檢視你在工作拷貝所做的修改的最簡單的方法。


$ svn status wc
 M     wc/bar.c
A  +   wc/qax.c

如果你希望找出工作拷貝哪些檔案是最新的,使用--show-updates選項(這不會對工作拷貝有任何修改)。這裡你會看到wc/foo.c在上次更新後有了修改:


$ svn status --show-updates wc
 M           965    wc/bar.c
       *     965    wc/foo.c
A  +         965    wc/qax.c
Status against revision:    981

注意

--show-updates只會在過期的專案(如果你執行svn update,就會更新的專案)旁邊安置一個星號。--show-updates不會導致狀態列表反映專案的版本庫版本。

最後,是你能從status子命令得到的所有資訊:


$ svn status --show-updates --verbose wc
 M           965       938 sally        wc/bar.c
       *     965       922 harry        wc/foo.c
A  +         965       687 harry        wc/qax.c
             965       687 harry        wc/zig.c
Head revis