1. 程式人生 > >版本控制之svn命令列下檢出、提交、更新

版本控制之svn命令列下檢出、提交、更新

4 使用命令列模式訪問SVN伺服器
4.1 檢出
①首先進入自己的工作目錄,例如:D:\DevWorkSpace\SVNSpace
②執行svn checkout命令,命令格式如下
格式 svn checkout svn://SVN伺服器主機地址/具體倉庫目錄 儲存檢出內容的目錄
舉例 svn checkout svn://localhost/ERP MyERP
執行結果 取出版本 0。
③工作副本
執行checkout命令後進入MyERP目錄,看到裡面什麼都沒有。真的什麼都沒有嗎?不是的。檢出命令會在這一目錄下建立一個隱藏目錄.svn,用來儲存與伺服器互動的重要資訊,其中包括從伺服器端取回的最新版本資訊、檔案狀態、更新時間等。SVN正是以此為依據判斷當前目錄中檔案的狀態。所以這個隱藏目錄千萬不要刪除或修改其中的內容——完全無視它的存在吧。如果伺服器端儲存的檔案可以視為一個“正本”,那麼每個開發人員檢出到本地目錄的檔案可以視為“副本”,通常稱為工作副本。
4.2 提交
①進入D:\DevWorkSpace\SVNSpace\MyERP目錄
②建立一個檔案test.txt
③執行svn commit命令,執行結果是
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E200009: 提交失敗(細節如下):
svn: E200009: “D:\DevWorkSpace\SVNSpace\MyERP\test.txt” 尚未納入版本控制
說明一個檔案必須納入版本控制才可以提交到伺服器端。
④執行svn add命令,將test.txt納入版本控制
D:\DevWorkSpace\SVNSpace\MyERP>svn add test.txt
A test.txt
⑤再次執行svn commit命令
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E205007: 提交失敗(細節如下):
svn: E205007: 無法使用外部編輯器獲得日誌資訊;考慮設定環境變數 $SVN_EDITOR,或者使用 –message (-m) 或 –file (-F) 選項
svn: E205007: 沒有設定 SVN_EDITOR,VISUAL 或 EDITOR 環境變數,執行時的配置引數中也沒有 “editor-cmd” 選項
此時要求附加日誌資訊
⑥使用-m引數附加日誌資訊
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m “My first commit” test.txt
svn: E170001: 提交失敗(細節如下):
svn: E170001: 認證失敗
原因是沒有許可權
⑦暫時先開啟匿名訪問許可權
[1]進入對應的版本庫目錄下的conf目錄:D:\DevRepository\Subversion\ERP\conf
[2]開啟svnserve.conf
[3]將第19行的# anon-access = read改為anon-access = write,也就是去掉“# ”,將read改為write。注意前面不要留空格,一定要頂格寫。
[4]不需要重啟SVN服務,甚至命令列視窗都不需要重新開啟。
⑧重新執行提交命令
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m “My first commit” test.txt
正在增加 test.txt
傳輸檔案資料.
提交後的版本為 1。
說明提交成功了。
⑨其實svn commit命令最後可以不指定具體檔案,此時表示提交當前工作副本中的所有修改。
4.3 更新
①將伺服器端檔案檢出到一個新的目錄,模擬另外一個終端
D:\DevWorkSpace\SVNSpace>svn checkout svn://localhost/ERP TomERP
A TomERP\test.txt
取出版本 1。
②回到MyERP目錄,對test.txt檔案修改後提交。
③進入TomERP目錄
④執行svn update命令
D:\DevWorkSpace\SVNSpace\TomERP>svn update
正在升級 ‘.’:
U test.txt
更新到版本 2。
這樣我們就可以在TomERP目錄下看到MyERP目錄下提交的修改。
⑤思考:更新和檢出的相同點和不同點分別是什麼?
檢出 更新
相同點 從伺服器端下載最新內容
不同點1 下載整個專案 下載與本地工作副本不同的內容
不同點2 建立.svn目錄,使檢出目錄成為工作副本 依賴.svn目錄
不同點3 只能操作1次 可以操作多次