在Eclipse中安裝SVN客戶端插件

1.1 Eclipse插件應用市場

在Eclipse中訪問Eclipse Marketplace Client可以搜索Subversion,下載插件,按提示安裝即可。

1.2 使用壓縮包

如果不能聯網可以使用下載好的插件壓縮包eclipse_svn_site-1.10.5.zip,這個壓縮包是從http://subclipse.tigris.org/網站(subclipse是這款Eclipse插件的名稱)上下載的。安裝方法是:

①解壓eclipse_svn_site-1.10.5.zip中的features和plugins這兩個目錄

②將features和plugins複製到Eclipse安裝目錄/dropins/eclipse_svn_site-1.10.5下

③重啟Eclipse

④進入Eclipse依次打開Window→Preferences→Team→SVN,看到如下界面即說明SVN插件安裝成功


在Eclipse中安裝SVN客戶端插件

1.3 創建資源庫位置

①切換到透視圖SVN資源庫研究

②創建資源庫位置


在Eclipse中安裝SVN客戶端插件


此時可以查看版本庫中的文件及目錄結構


在Eclipse中安裝SVN客戶端插件


1.4 檢出

①檢出分兩種情況

<1>從服務器端獲取到的是一些零散的文件,不能作為項目檢出


在Eclipse中安裝SVN客戶端插件


此時會彈出一個新建項目嚮導,之所以會這樣是因為我們需要創建一個項目來保存從服務器端取回的文件


在Eclipse中安裝SVN客戶端插件


<2>從服務器端獲取到的是一個完整的項目,例如


在Eclipse中安裝SVN客戶端插件


此時必須作為項目檢出


在Eclipse中安裝SVN客戶端插件


在Eclipse中安裝SVN客戶端插件


項目從服務器檢出後,會成為一個工作副本,根目錄下會自動創建.svn隱藏目錄

1.5 提交

①新創建文件後,文件圖標上會以“?”標識,表示該文件尚未納入版本控制

②在新創建的文件上點右鍵→Team→添加至版本控制,這樣文件圖標上會顯示“+”,表示當前文件已納入版本控制,但還未提交至服務器。

③在要提交的文件上點右鍵→Team→提交...會提交文件,在彈出的對話框中可以不填寫日誌。文件提交後,圖標會變為“金色的圓柱體”表示當前文件的版本和服務器端一致。

④文件修改後圖標會變為“*”,表示當前文件或目錄包含未提交的修改。

1.6 更新

①更新整個項目時可以在項目上點右鍵→Team→更新

②更新某個具體的文件時,可以在文件上點右鍵→Team→更新

1.7 共享項目

①在Eclipse中創建的新項目想要發佈到SVN服務器端,可以通過“共享”項目實現

②在項目上點右鍵→Team→Share Project...→選擇一種版本控制工具


在Eclipse中安裝SVN客戶端插件


選擇一個資源庫位置


在Eclipse中安裝SVN客戶端插件


在Eclipse中安裝SVN客戶端插件


切換到Team Synchronizing透視圖,選擇項目中要提交的內容,通常是項目中的全部內容


在Eclipse中安裝SVN客戶端插件


1.8 恢復歷史版本

①在需要回復的文件上點右鍵→Team→顯示資源歷史記錄→得到如下界面


在Eclipse中安裝SVN客戶端插件


②選擇某一個歷史記錄點右鍵→獲取內容。文件就會恢復到指定版本的狀態,同時圖標變為“*”。

③獲取歷史記錄時,如果出現如下錯誤提示


在Eclipse中安裝SVN客戶端插件


可以通過將對應版本庫中的svnserve.conf文件中的anon-access設置為none解決。

1.9 解決衝突

①什麼情況下會發生衝突


在Eclipse中安裝SVN客戶端插件


<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中的內容發生如下改變

public static void main(String[] args) {

System.out.println("Edit By Command!");

System.out.println("Edit By Command!");

<<< .mine

System.out.println("Edit By Eclipse!");

=======

System.out.println("Edit By Command!New Edit");

>>>>>>> .r14

System.out.println("Edit By Command!");

System.out.println("Edit By Command!");

}

其中,從<<< .mine到=======之間是發生衝突時本地副本的內容。從=======到>>>>>>> .r14是發生衝突時服務器端的最新內容。注意這裡r後面的數字是發生衝突時服務器端的版本號,有可能是任何整數值,r14只是一個例子。

同時文件圖標變成一個“黃色的!”。

(2)與衝突文件同目錄下新增文件,擴展名為.mine,其內容是發生衝突時本地副本的文件內容。

(3)與衝突文件同目錄下新增文件,擴展名為.r小版本號,例如MyCRM.java.r13,其內容是衝突發生之前,服務器端的文件內容,可以作為解決衝突的參照。

(4)與衝突文件同目錄下新增文件,擴展名為.r大版本號,例如MyCRM.java.r14,其內容是衝突發生時,服務器端的文件內容。

②解決衝突

(1)在衝突文件上點右鍵→Team→編輯衝突...→出現如下界面


在Eclipse中安裝SVN客戶端插件


以對比的方式將本地內容與衝突內容顯示出來,其中左側為本地內容,右側為衝突內容。其中本地內容是可以修改的。

(2)根據需要和實際情況將本地內容更正——這個過程很可能需要牽涉衝突的兩位開發人員進行必要的溝通——機器與程序目前還不能完全取代人工智能。更正後文件圖標會變成一個“四角形”,同時衝突文件內的<<< .mine、=======以及>>>>>>> .r14等標記都會被去掉。

(3)在衝突文件上點右鍵→Team→標記為解決


在Eclipse中安裝SVN客戶端插件


此時.mine文件和.r版本號文件都會被自動刪除,衝突文件的圖標變為“*”,表示可以提交。

(4)提交文件,文件圖標變為“金色圓柱體”。


分享到:


相關文章: