經驗總結:Subversion使用命令行訪問項目源文件 下篇
本文是Subversion命令介紹的最后一節了,通過之前兩節的介紹相信你對Subversion命令應該有了大致的了解了吧,讓我們來繼續學習Subversion命令。
使用存儲庫
創建新目錄:svnmkdir,若要在您的工作副本中創建新目錄,請鍵入:svnmkdirPATH;若要在您的項目存儲庫中創建新目錄,請鍵入:svnmkdirURL;PATH或URL的最后一部分決定目錄名稱。在立即提交時在存儲庫中創建目錄,所以還需要一條提交信息。
轉換:--message(-m)TEXT,--file(-F)FILE,--quiet(-q),--usernameUSER,--passwordPASS,--no-auth-cache,--non-interactive,--editor-cmdEDITOR,--encodingENC,--force-log,--config-dirDIR
移動文件或目錄:svnmove;您可以使用svnmoveSRCDST在工作副本或項目存儲庫內部移動文件或目錄。此命令等效于在使用svncopy后,再使用svndelete。在工作副本內部移動文件或目錄,不僅會移動該文件或目錄,而且還將安排它以便于下次提交時進行添加。在項目存儲庫內部移動文件或目錄屬于封閉單元式提交,所以需要一條提交信息。
Subversion命令轉換:--message(-m)TEXT,--file(-F)FILE,--revision(-r)REV,--quiet(-q),--force,--usernameUSER,--passwordPASS,--no-auth-cache,--non-interactive,--editor-cmdEDITOR,--encodingENC,--force-log,--config-dirDIR
使用屬性
Subversion具有很多具體屬性,這些屬性影響或決定其行為。您可以修改、提交和撤消屬性更改,就像對文件內容所執行的操作一樣。您還可以從本地工作副本或項目存儲庫的文件、目錄或修訂版本中,刪除、編輯、打印、列出以及設置屬性。請參見屬性、無版本屬性、元數據屬性、svnpropdel、svnpropedit、svnpropget、svnproplist、svnpropset、Hook腳本。
解決沖突:svnresolved,更新本地工作副本時,可能會遇到沖突。您需要解決此沖突。解決沖突后,鍵入svnresolvedPATH...,通知工作副本該沖突已“解決”。
轉換:--targetsFILENAME,--recursive(-R),--quiet(-q),--config-dirDIR請參見解決沖突(合并其他人的更改)。
撤消您的更改:svnrevert,使用Subversion時,您會發現svnrevertPATH...等效于Windows中的CtrlZ。您可以:撤消本地工作副本中的任何本地更改,從而解決沖突狀態。
撤消工作副本中的條目內容及屬性更改。取消任何進度安排操作,如添加文件、刪除文件等。注意,如不提供目標,會導致工作副本中的更改丟失。
Subversion命令轉換:--targetsFILENAME,--recursive(-R),--quiet(-q),--config-dirDIR,獲取文件/目錄的狀態:svnstatus在版本控制中,將更改提交到項目存儲庫之前最好對其進行審查。可以運行svnstatus打印工作副本中的文件和目錄的狀態。打印結果為八列編碼輸出。由于每列都有詳盡的圖例,若要從此輸出中得出“無錯誤”的結論幾乎不可能。若要使此任務更加簡單,并同時可看到示例,請在命令提示符處鍵入svnhelpstatus。
轉換:--show-updates(-u),--verbose(-v),--non-recursive(-N),--quiet(-q),--no-ignore,--usernameUSER,--passwordPASS,--no-auth-cache,--non-interactive,--config-dir請參見檢查你的更改。
轉換工作副本:svnswitch,可以使用svnswitchURL[PATH]更新工作副本,以鏡像新的URL。您還可以將工作副本或部分工作副本移動到新的分支。您可以將此子命令用作分支的快捷方式。
轉換:--revision(-r)REV,--non-recursive(-N),--quiet(-q),--diff3-cmdCMD,--relocate,--usernameUSER,--passwordPASS,--no-auth-cache,--non-interactive,--config-dirDIR請參見轉換工作副本、分支和合并以及svnswitch。
更新工作副本:svnupdate,為了進行更好的版本控制,建議您每天用項目存儲庫更新本地工作副本,請使用:svnupdate[PATH...]列出的已更新條目以及它們的當前狀態顯示如下:
A=已將一個文件添加到您的工作副本中。
U=已更新您的工作副本中的一個文件。
D=已從您的工作副本中刪除一個文件。
R=已替換您的工作副本中的一個文件。
G=已成功合并了一個文件。
C=一個文件已合并了必須手動解決的沖突
Subversion命令轉換:--revision(-r)REV,--non-recursive(-N),--quiet(-q),--diff3-cmdCMD,--usernameUSER,--passwordPASS,--no-auth-cache,--non-interactive,--config-dirDIR請參見更新你的工作副本、手動合并沖突。
分支和標記
項目的主干通常用作開發主線,而分支通常用作主線的變更。分支是正在進行的開發線。在軟件開發生命周期中,如果軟件產品的發布版本已到期,經常會用到分支,使測試者可以使用候選版本,使新的開發可以繼續進行,不受測試的約束。分支還用于實驗性工作,以及完成代碼重寫。標記是將一組文件修訂版本標記為整體的方式。雖然分支和標記都是使用svncopy子命令創建的,但它們是完全不同的。分支表示多個修訂版本而標記只表示單個修訂版本。
本站點上您項目的Subversion存儲庫支持對您的源文件進行分支和標記。對于Subversion來說,標記和分支屬于簡單實用的“復制”操作。若要創建分支或標記項目文件,請鍵入:svncopySRCDST-m"在此處鍵入您的信息"。到這里Subversion命令已經介紹完畢。
【編輯推薦】
- 學習筆記:剖析Collabnet Subversion集成
- 深入剖析:Subversion1.5.5和Apache2.2.9在Windows下的完美結合
- Subversion和TortoiseSVN如何在Windows下進行構建SVN版本控制
- 揭露MyEclipse Subversion環境建立的內幕
- 經驗總結:如何讓Visual Studio 2008支持Subversion