標籤:網站 無法 最新 表示 size 專案檔 介面 1.5 href
0 基本概念瞭解
0.1 SVN的工作原理:採取用戶端/伺服器模式——在伺服器的版本庫中儲存專案檔的各個版本,所有參與協同開發的程式員在自己本地電腦上儲存一個工作複本。SVN支援程式員將本機複本更新到伺服器端的最新版本,也支援將本機複本的最新改變更新到伺服器端,而且後面的更新不會覆蓋前面的更新,而是作為一個新的版本被儲存下來——SVN甚至支援將本地工作複本恢複為伺服器端儲存的某一個曆史版本。
0.2 SVN基本操作
①檢出(checkout):將一個伺服器端建立好的項目整個下載到本地,這是到項目組後參與開發的第一步,只需執行一次。
②更新(update):將本地檔案更新為伺服器端的最新版本,通常為每天上班時或修改公用檔案之前執行一次。
③提交(commit):將本地修改提交到伺服器端。通常每天下班前或每實現一個功能、完成一個模組時執行一次。
1 Eclipse中svn的使用
1.1 Eclipse外掛程式應用市場
在Eclipse中訪問Eclipse Marketplace Client可以搜尋Subversion,下載外掛程式,按提示安裝即可。
1.2 使用壓縮包(推薦)
如果不能連網可以使用下載好的外掛程式壓縮包eclipse_svn_site-xxx.zip,這個壓縮包是從http://subclipse.tigris.org/網站(subclipse是這款Eclipse外掛程式的名稱)上下載的。安裝方法是:
①解壓eclipse_svn_site-xxx.zip中的features和plugins這兩個目錄
②將features和plugins複製到Eclipse安裝目錄/dropins/svn下
③重啟Eclipse
④進入Eclipse依次開啟Window→Preferences→Team→SVN,看到如下介面即說明SVN外掛程式安裝成功
1.3 建立資產庫位置
①切換到透視圖SVN資產庫研究
②建立資產庫位置
此時可以查看版本庫中的檔案及目錄結構
1.4 檢出
①檢出分兩種情況
<1>從伺服器端擷取到的是一些零散的檔案,不能作為項目檢出
此時會彈出一個建立項目嚮導,之所以會這樣是因為我們需要建立一個項目來儲存從伺服器端取回的檔案
<2>從伺服器端擷取到的是一個完整的項目,例如
此時必須作為項目檢出
項目從伺服器檢出後,會成為一個工作複本,根目錄下會自動建立.svn隱藏目錄
1.5 提交
①新建立檔案後,檔案表徵圖上會以“?”標識,表示該檔案尚未納入版本控制
②在新建立的檔案上點右鍵→Team→添加至版本控制,這樣檔案表徵圖上會顯示“+”,表示當前檔案已納入版本控制,但還未提交至伺服器。
③在要提交的檔案上點右鍵→Team→提交...會提交檔案,在彈出的對話方塊中可以不填寫日誌。檔案提交後,表徵圖會變為“金色的圓柱體”表示當前檔案的版本和伺服器端一致。
④檔案修改後表徵圖會變為“*”,表示當前檔案或目錄包含未提交的修改。
1.6 更新
①更新整個項目時可以在項目上點右鍵→Team→更新
②更新某個具體的檔案時,可以在檔案上點右鍵→Team→更新
1.7 共用項目
①在Eclipse中建立的新項目想要發布到SVN伺服器端,可以通過“共用”項目實現
②在項目上點右鍵→Team→Share Project...→選擇一種版本控制工具
選擇一個資產庫位置
切換到Team Synchronizing透視圖,選擇項目中要提交的內容,通常是項目中的全部內容
1.8 回複曆史版本
①在需要回複的檔案上點右鍵→Team→顯示資源記錄→得到如下介面
②選擇某一個記錄點右鍵→擷取內容。檔案就會恢複到指定版本的狀態,同時表徵圖變為“*”。
③擷取記錄時,如果出現如下錯誤提示
可以通過將對應版本庫中的svnserve.conf檔案中的anon-access設定為none解決。
1.9 解決衝突
①什麼情況下會發生衝突
<1>兩個開發人員,Harry和Sally,分別從伺服器端下載了檔案A。
<2>Harry修改之後,A變成了A’,Sally修改之後,A變成了A’’。
<3>Harry先一步提交,使伺服器端檔案的版本也變成了A’
<4>Sally本地的檔案A’’已經過時了,此時她已無法提交檔案,伺服器會要求她先進行一次更新操作。
<5>此時Sally的更新操作有兩種可能
(1)Sally所做的修改與Harry不是同一個位置,更新操作嘗試合并檔案成功。
(2)Sally所做的修改與Harry恰好是同一個位置,更新操作嘗試合并檔案失敗,發生衝突。
<6>發生衝突後,本地工作複本會發生如下變化
(1)檔案A中的內容發生如下改變
其中,從<<<<<<< .mine到=======之間是發生衝突時本機複本的內容。從=======到>>>>>>> .r14是發生衝突時伺服器端的最新內容。注意這裡r後面的數字是發生衝突時伺服器端的版本號碼,有可能是任何整數值,r14只是一個例子。
同時檔案表徵圖變成一個“黃色的!”。
(2)與衝突檔案同目錄下新增檔案,副檔名為.mine,其內容是發生衝突時本機複本的檔案內容。
(3)與衝突檔案同目錄下新增檔案,副檔名為.r小版本號碼,例如MyCRM.java.r13,其內容是衝突發生之前,伺服器端的檔案內容,可以作為解決衝突的參照。
(4)與衝突檔案同目錄下新增檔案,副檔名為.r大版本號碼,例如MyCRM.java.r14,其內容是衝突發生時,伺服器端的檔案內容。
②解決衝突
(1)在衝突檔案上點右鍵→Team→編輯衝突...→出現如下介面
以對比的方式將本地內容與衝突內容顯示出來,其中左側為本地內容,右側為衝突內容。其中本地內容是可以修改的。
(2)根據需要和實際情況將本地內容更正——這個過程很可能需要牽涉衝突的兩位開發人員進行必要的溝通——機器與程式目前還不能完全取代人工智慧。更正後檔案表徵圖會變成一個“四角形”,同時衝突檔案內的<<<<<<< .mine、=======以及>>>>>>> .r14等標記都會被去掉。
(3)在衝突檔案上點右鍵→Team→標記為解決
此時.mine檔案和.r版本號碼檔案都會被自動刪除,衝突檔案的表徵圖變為“*”,表示可以提交。
(4)提交檔案,檔案表徵圖變為“金色圓柱體”。
SVN學習(三)——在Eclipse 中安裝和使用SVN用戶端外掛程式