svn status查看工作副本中目錄與文件的狀態
命令格式:svn status [PATH](簡寫:svn st)
打印工作拷貝中文件和目錄的狀態。
svn st|grep ^狀態(獲得某狀態文件列表)
svn st|grep -v ^狀態(也作svn st|grep ^[^狀態],過濾掉某狀態得到其他狀態文件列表)
例:
svn st|grep ^M (獲取“M”狀態文件列表)
svn st|grep -v ^?(過濾掉“?”狀態的文件列表)
常見狀態如下:
“A” 預定加入到版本庫
“C” 發生沖突
“D” 被刪除了
“M” 內容被修改
“?” 條目未納入版本控制
“!” 該項目已遺失(被非svn命令刪除)或不完整
“~” 版本控制下的項目與其它類型的項目重名
“G” 合並
“I” 忽略
“R” 替換
“X” 未納入版本控制,但被外部定義所用
“?” 未納入版本控制
“L” 鎖定
“S” 已切換
“K” 存在鎖定標記
其中,“?”“!”“~”為非正常狀態,svn不會將處於該狀態的文件提交至項目倉庫。
l “!” 狀態說明
出現原因:使用非svn命令(rm等)刪除了此條目。
解決方法:使用svn update(svn up),將被刪除的條目更新出來。
正確操作方法:使用svn delete刪除納入版本控制的條目
l “~ ”狀態說明
出現原因:刪除了一個版本庫的文件,新建了一個在原來的位置,新建文件類型與原有文件不一致,而且整個過程中沒有使用svn delete或是svn add。
解決方法: 將“~”文件svn revert 掉,按照正確操作重新修改。
出錯案例:
wsdl頭文件統一建立在include/wsdl_include目錄中,各模塊webservice目錄下的同名wsdl頭文件只是創建的軟鏈接。若拷貝include/wsdl_include目錄中wsdl頭文件將webservice目錄下的同名wsdl頭文件覆蓋掉,svn st查看wsdl頭文件狀態為“~”。
