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