Eclipse中CVS的使用

來源:互聯網
上載者:User
Eclipse中CVS的使用 5.1  CVS簡介

CVS是Concurrent Versions System(並發版本系統)的簡稱。它是一個開放原始碼的項目,是當前最流行的版本控制系統,目前絕大部分Open Source項目都使用它來做版本管理。如果你還習慣用微軟的VSS來進行Java項目的版本管理,那麼用上Eclipse後,建議還是轉為使用CVS。

CVS採用客戶機/伺服器體系,代碼、文檔的各種版本都儲存在伺服器端,開發人員首先從伺服器上獲得一份複製到本機,然後在此基礎上進行開發。開發人員可隨時將新代碼提交給伺服器,當然也可以通過更新操作獲得最新的代碼,保持與其他開發人員的一致。

Eclipse本身內建了CVS用戶端,只要再建立一個CVS伺服器就可以使用這一功能強大的版本控制系統。CVS的功能雖強大,但一般項目通常只用到其20%的功能,所以只要瞭解最常用的操作就可以了,本章將以面向實際項目使用需要的方式來介紹CVS。 5.2  CVS伺服器端的安裝與配置

CVS起源於UNIX/Linux平台,關於UNIX/Linux平台下的安裝使用CVS伺服器端的文章,在網上多如牛毛,本節不再重複。CVS伺服器在Windows平台的版本:cvsnt,它的安裝有一定困難,本節將著重介紹cvsnt的安裝。

首先到cvsnt首頁http://www.cvsnt.com/downloads/去下載它,下載方法參閱配書光碟片的視頻示範。目前的最新版本是cvsnt 2.0.58d,它可以安裝在Windows NT/2000/XP/2003上。

(1)運行安裝程式,不必更改它的任何預設設定,連續單擊next按鈕,即可完成安裝。cvsnt預設安裝在“C:/Program Files/cvsnt”目錄下。

(2)通過Windows選擇“開始→所有程式→CVSNT”選項,開啟cvsnt的設定面板“Service control panel”,如圖5.1所示,上面兩個服務已經啟動。

%注意:如果提示找不到rundll32.exe,則單擊“瀏覽”按鈕,指向“C:/windows/system32/ rundll32.exe”並運行它。

(3)單擊圖5.1中的Repositories選項卡,再單擊Add按鈕,建立一個存放版本檔案的目錄“c:/cvsfile”,如圖5.2所示,單擊OK按鈕後在彈出的兩個視窗中回答“是”。

%注意:建議在Name欄不要用自動產生的“/cvsfile”,而是改寫成絕對路徑“c:/cvsfile”,否則有可能在cvsnt安裝後無法正常使用。

         

圖5.1  Service control panel介面                  圖5.2  建立存放版本檔案的目錄

(4)轉到“Compatibility”選項卡,將3個選項都選上,如圖5.3所示。

%注意:這一步非常重要,否則CVS 2.0.58d無法在Eclipse 3.0.1下正常使用,如果你使用Eclipse 3.1M4版,則此步設定可跳過。

圖5.3  Compatibility選項卡

(5)CVS用戶端要串連上伺服器,還需要在伺服器端分配一個使用者名稱,並且使用者名稱要求必須是Windows的登入使用者。本書登入Windows XP的使用者名稱為giles,密碼為空白。進入Windows的命令列視窗,如圖5.4所示,轉到C:/Program Files/cvsnt目錄下,輸入命令cvs  -d  c:/cvsfile  passwd  -a  giles,按斷行符號鍵輸入giles在CVS上的登入密碼(本書設定密碼為123456),此密碼與XP可以不同。

%注意:安裝好CVSNT之後,也可以通過“控制台”裡的“使用者帳號”來建立一個新使用者,這時該使用者自動成為CVS使用者,密碼相同。

至此,CVS伺服器部分的設定已經全部完畢,用戶端已可以使用giles為帳號來登入CVS。

圖5.4  命令列視窗

(6)其他

如果要將CVS的檔案移植到另一台電腦上,或者原cvs伺服器所在電腦重裝了作業系統,這時就要涉及移植或恢複CVS。以本書配書光碟片的cvsfile目錄(後面章節的CVS備份)為例,讀者只需要將此目錄複寫到本地電腦(複製後也可以改名),然後按照圖5.2的操作將它註冊一下即可。由此可知,備份CVS上的檔案只需將cvsfile目錄複寫一份就行了,非常簡單。

如果讀者對許可權要求比較嚴格,那麼就需要設定CVS使用者的許可權,CVS的許可權是和作業系統許可權相關的(使用者都是作業系統的使用者),也就是說讀者需要設定Windows檔案目錄的許可權。 5.3  CVS用戶端的配置 5.3.1  配置Eclipse的用戶端來串連上CVS伺服器

開啟Eclipse中的“CVS資產庫研究”透視圖,然後在左部的“CVS資產庫”視圖單擊右鍵,在右鍵菜單中選擇“建立→資產庫位置”選項。在彈出的視窗輸入CVS的相關資訊,如圖5.5所示,填完後單擊“完成”按鈕。

圖5.5  添加CVS資產庫

%注意:

(1)資產庫路徑用CVS伺服器上的絕對路徑,即圖5.2中Name文字框的值。

(2)密碼是上面用cvs命令列設定的123456。但如果是通過“控制台”裡的“使用者帳號”來建立使用者的,那麼此密碼即為該使用者的Windows登入密碼。 5.3.2  將項目提交到CVS伺服器上

將項目提交到CVS伺服器上的步驟如下:

(1)轉到Eclipse的“資源”透視圖。按右鍵項目名myproject,然後選擇“小組→共用項目”選項,如圖5.6所示。在彈出的“共用項目”視窗中,接受預設設定,直接單擊“下一步”按鈕。

圖5.6  “共用項目”視窗

(2)如圖5.7所示,視窗提示輸入模組名,接受預設選項,單擊“下一步”按鈕。

圖5.7  共用項目-輸入模組名

(3)如圖5.8所示,在視窗中選擇要提交到CVS上的項目資源(即檔案),不必作任何設定(預設為提交項目所有檔案),直接單擊“完成”按鈕。

圖5.8  共用項目-項目資源

(4)如圖5.9所示,連續彈出兩個視窗,都單擊“是”按鈕。又彈出一個視窗要求輸入提交注釋,寫上一些解說文字(也可以為空白),單擊“確定”按鈕,Eclipse開始將專案檔提交到CVS伺服器上。

圖5.9  “資源提交”對話方塊 5.3.3  CVS伺服器上的項目匯入到Eclipse中

如果新同事加入項目Team Dev,這時他就需要將CVS伺服器上的項目匯入到自己的Eclipse中。為了方便類比,再安裝一個Eclipse,只要安裝目錄不同,兩個Eclipse同時運行也不會有衝突。將CVS伺服器上的項目匯入到Eclipse中的步驟如下:

(1)在主菜單選擇“檔案→匯入”選項,彈出如圖5.10所示的視窗。

圖5.10  “匯入”視窗

(2)選擇“從CVS檢出項目”,單擊“下一步”按鈕。彈出一個設定資產庫的位置視窗,接受預設選項,直接單擊“下一步”按鈕,彈出如圖5.11所示的視窗。

圖5.11  填寫CVS上的模組名稱

(3)在模組名稱文字框輸入myproject,單擊“下一步”按鈕,彈出如圖5.12所示的視窗。myproject這個名稱不是項目名稱,而是項目共用到CVS上時所取的模組名(模組名的設定參見圖5.7),只不過通常將CVS模組名取成和項目名相同。

圖5.12  “檢出為”視窗

(4)在項目名稱文字框輸入myproject(可任意取名)。Eclipse會以此名稱產生一個項目,並將CVS的檔案匯出到此項目下。在該視窗中直接單擊“完成”按鈕,CVS伺服器上的最新檔案開始匯入到本機中。 5.4  檔案提交與更新的方法 5.4.1  CVS和VSS的不同之處

對於用過微軟VSS的讀者,在介紹CVS檔案操作之前,有必要瞭解一下兩者的不同   之處:

(1)用VSS必須check out(檢出)檔案才能修改此檔案,而此時該檔案將被鎖定,其他人不能再修改(可以讀),必須要等檔案被上一個修改者check in(提交)才行,也就是說VSS同一檔案一次只允許一個人修改。

(2)CVS則使用完全不同的機制,多人可以同時修改同一檔案。檔案不會像VSS一樣被鎖定,所以也就沒有修改檔案之前要check out(檢出)的操作,CVS的最基本操作是 “提交檔案到CVS”和“從CVS更新檔案到本機”。當然在CVS中如果多人同時修改了一個檔案,在提交時會提示代碼衝突,並提供一個視窗來合并這些修改,但這樣的合并修改操作是很麻煩的,因此應儘可能地避免多人同時修改一個檔案。 5.4.2  檔案的提交和更新

1.將修改的檔案提交到CVS

在HelloWorld.java中增加一條輸出語句“System.out.println("第一次修改");”,然後儲存。按右鍵視窗右側“導航器”視圖中的HelloWorld.java檔案,在快顯功能表中選擇“小組→提交”選項,如圖5.13所示。

圖5.13  提交介面

2.從CVS更新檔案到本機

刪除掉HelloWorld.java中的語句“System.out.println("第一次修改");”然後儲存,這時要將CVS伺服器上的最新代碼更新到本地,有以下兩種方法:

(1)按右鍵HelloWorld.java檔案,在彈出的菜單中選擇“替換為→HEAD的最新內容”選項。

(2)按右鍵HelloWorld.java檔案,在彈出的菜單中選擇“小組→與資產庫同步”選項,在彈出的同步介面,如圖5.14所示,單擊“將當前更改從右邊複製到左邊”按鈕,然後儲存。

圖5.14  資產庫同步介面

讀者可能會問:“按右鍵HelloWorld.java檔案,然後選擇‘小組→更新’這種更新方法,為什麼不用呢。”

這種更新方法是將CVS的最新版更新到本機,當本機檔案沒有修改的時候才用這種方法。如果對HelloWorld作了修改,CVS上的反而是舊內容了,這時再用這種更新方法則對本地的HelloWorld.java檔案不會產生任何影響。 5.4.3  解決檔案提交的衝突

在多人項目開發中,由於同時修改一個檔案,一時就會產生提交衝突,本小節就來說明一下如何解決這種衝突。

在上面檢出項目時,已經另外安裝了一個Eclipse,相當於多了一個開發人員,原來的稱為Giles,新加入的叫Tom。Giles和Tom電腦上的HelloWorld.java的版本都是1.2。這時Giles在檔案中增加一條語句“System.out.println("Giles第1次修改");”,同樣Tom也在檔案中作了類似修改,如圖5.15所示。

圖5.15  兩開發人員對代碼的修改情況

Giles先提交HelloWorld.java檔案,這時版本變成了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.