国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Eclipse中版本控制系統(tǒng)CVS的使用

Eclipse中版本控制系統(tǒng)CVS的使用

(2011-03-09 14:50:47)
 
前言

項(xiàng)目的版本控制對于團(tuán)隊(duì)開發(fā)是極端重要的,對于個人開發(fā)者也是項(xiàng)目復(fù)雜化時不可缺少的工具。

本文介紹如何在Eclipse中使用版本控制系統(tǒng)CVS。首先,我們將簡要討論一下團(tuán)隊(duì)代碼開發(fā)的思想,然后簡要講述CVS系統(tǒng)的背景及Windows平臺下CVS服務(wù)器的安裝和設(shè)置。接下來,針對Eclipse,詳細(xì)講解了使用CVS進(jìn)行團(tuán)隊(duì)開發(fā)時的開發(fā)流程以及在Eclipse中具體使用的重要操作方法。

背景

現(xiàn)今的大多數(shù)應(yīng)用程序是由多人組成的團(tuán)隊(duì)開發(fā)的。即使只涉及幾個開發(fā)人員的小項(xiàng)目,也需要對源代碼的更改進(jìn)行嚴(yán)格控制。這就是源代碼管理軟件的任務(wù)。源代碼版本控制軟件必須支持兩個核心功能:

     * 提供一種方法,能夠協(xié)調(diào)對源代碼的更改,并能集成這些更改
     * 團(tuán)隊(duì)所提交工作的歷史記錄

當(dāng)團(tuán)隊(duì)成員完成新的工作時,通過將這些更改提交到資源庫(repository)中來共享他們的工作。類似地,當(dāng)他們希望獲得最新可用的工作成果時,就可以根據(jù)資源庫中的更改,更新自己的本地工作空間(Workbench)。這意味著資源庫的內(nèi)容會因團(tuán)隊(duì)成員提交新工作成果而經(jīng)常發(fā)生更改團(tuán)隊(duì)成員都要能夠根據(jù)資源庫更新自己的工作空間,確信它們是最新的。

維護(hù)歷史記錄也很重要,那樣就可以將當(dāng)前工作與先前版本進(jìn)行比較,如有必要,還可以回復(fù)到先前版本。協(xié)調(diào)團(tuán)隊(duì)的工作,以便只存在唯一的當(dāng)前項(xiàng)目狀態(tài)定義,以及包含團(tuán)隊(duì)已集成的工作,這些對于管理版本控制也是十分必要的。這種協(xié)調(diào)有可能是最難實(shí)現(xiàn)的目標(biāo)。

最理想的模型是:團(tuán)隊(duì)的任何成員都可以對自己有權(quán)訪問的任何資源進(jìn)行更改。因?yàn)閮蓚€團(tuán)隊(duì)成員可以提交對同一資源的更改,所以有可能發(fā)生沖突,必須解決這種沖突。

這種模型假定沖突具有唯一性。但遺憾的是,沒有任何源代碼是孤立地存在的;通常它包含與其它資源隱式或顯式的相關(guān)性。但源代碼管理軟件的工作就到此為止了,因?yàn)樗⒉荒苋〈?xiàng)目管理。項(xiàng)目管理者必須履行其職責(zé):協(xié)調(diào)其它成員的工作以及負(fù)責(zé)進(jìn)度、項(xiàng)目階段和發(fā)布日期。此外,源代碼管理也不能替代開發(fā)人員之間的交流。

Eclipse的內(nèi)置版本支持

Eclipse 本身內(nèi)置了一定程度的版本支持,也就是所謂的Local History。在Eclipse中編輯的文件每次存盤都會留下記錄,可以隨時與歷史記錄比較,恢復(fù)到某一個時刻的狀態(tài)。在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中的文件上點(diǎn)右鍵,選擇Compare With,Local History,就會得到如下的畫面,可以很清晰看到各個版本的區(qū)別。


圖1:Eclipse中的內(nèi)置版本支持:Local History。

如果需要,則可以通過Replace With,Local History來恢復(fù)到任一個以前的版本。當(dāng)然,這樣版本的歷史是有限制的,可以在Eclipse的Preference中設(shè)置。在 Preference―>Workbench->Local History中,可以設(shè)置保持最多保持幾天的文件,每一文件的版本數(shù)目,歷史文件的大小限制。

但是,這樣的版本系統(tǒng)只實(shí)現(xiàn)了最基本的版本功能,如果想把文件某一個狀態(tài)標(biāo)記為一個版本,加上注釋(僅僅從Local History中的保存時間很難看出每一個版本的特點(diǎn),也難以找到重要的關(guān)鍵版本),或者想把某個目錄乃至整個項(xiàng)目版本化,Eclipse內(nèi)置的Local History都是無能為力的。

CVS

好在Eclipse 平臺提供了作為團(tuán)隊(duì)在軟件項(xiàng)目中共享代碼和工作的能力。

Eclipse 平臺體系結(jié)構(gòu)的重點(diǎn)在于工作空間。工作空間維護(hù)構(gòu)建和測試軟件項(xiàng)目所需的一切,它包含源代碼和所需其它資源文件。工作空間是在開發(fā)人員的本地機(jī)器上進(jìn)行維護(hù)的,但整個團(tuán)隊(duì)通過源代碼管理系統(tǒng)進(jìn)行協(xié)作,不同開發(fā)人員的代碼在源代碼管理系統(tǒng)中進(jìn)行匯集。Eclipse平臺只對一個源代碼管理系統(tǒng)提供內(nèi)置支持:并發(fā)版本控制系統(tǒng)(Concurrent Versions System,CVS)。

CVS是Concurrent Versions System(并發(fā)版本系統(tǒng))的縮寫,誕生于 1986 年,現(xiàn)在已經(jīng)發(fā)展成了最流行的針對軟件開發(fā)人員的源代碼版本管理解決方案。CVS 是用于代碼版本管理的開放源碼的客戶機(jī)/服務(wù)器解決方案,它可用于各種平臺,包括 Linux 和 Windows NT/2000/XP。

通常,CVS 的主要功能是記錄源文件的歷史。當(dāng)一組開發(fā)人員從事同一個項(xiàng)目時,CVS 將他們彼此隔離開來。每個開發(fā)人員都在他/她自己的目錄中獨(dú)立工作,然后使用 CVS 資源庫(經(jīng)常地)合并工作結(jié)果,共享其工作。

CVS 采用客戶機(jī)/服務(wù)器體系,代碼以及各種版本存儲在中心服務(wù)器內(nèi),每一個個體開發(fā)者開發(fā)時都首先從服務(wù)器上獲得一份自己的拷貝,在此基礎(chǔ)上進(jìn)行開發(fā),以避免直接影響服務(wù)器上的數(shù)據(jù)。開發(fā)者可以隨時把自己的新代碼提交給服務(wù)器;也可以通過更新獲得代碼的最新狀態(tài),保持與其他開發(fā)者的一致。

CVS對于網(wǎng)絡(luò)是透明的,開發(fā)者可以使用客戶端軟件(幾乎所有的平臺上都有相應(yīng)的客戶端軟件)在任何時候,任何地點(diǎn)通過網(wǎng)絡(luò)來獲取最新的代碼。

對于Eclipse 的開發(fā)者而言,Eclipse本身內(nèi)置了CVS支持,Eclipse 擁有與 Eclipse 平臺 IDE 緊密集成的內(nèi)置 CVS 客戶機(jī),它是作為一個單獨(dú)透視圖(CVS Repository Exploring 透視圖)而實(shí)現(xiàn)的,用于與 CVS 的交互。

基本概念

HEAD與分支(Branch)

CVS 使用分支(branch)模型來支持彼此獨(dú)立而又高度相互依賴的多個工作流程(course of work)。分支是開發(fā)團(tuán)隊(duì)用來共享正在進(jìn)行中的工作的地方。任何時候,團(tuán)隊(duì)成員都可以使用一個分支的內(nèi)容作為新工作的基礎(chǔ)。

您在Eclipse工作空間中進(jìn)行本地更改時,您的工作是基于某一個分支的。當(dāng)您準(zhǔn)備好讓其他小組成員使用您對本地資源文件的更改時,需要將您的工作成果提交至分支。其他開發(fā)者稍后必須從分支更新。

每個 CVS 資源庫都至少有一個分支,稱為 HEAD。HEAD代表CVS里的主流分支。在特定情況下,資源庫中可以存在多個分支。例如,一個分支可能用于正常的開發(fā),而另一個分支可能用于實(shí)驗(yàn)新技術(shù)在當(dāng)前項(xiàng)目的可用性的開發(fā)。

創(chuàng)建分支并將資源發(fā)布到該分支在尚未準(zhǔn)備好將更改置于主開發(fā)流的情況下非常有用。對于創(chuàng)建現(xiàn)有版本的增量補(bǔ)丁程序也很有用。



模塊(Module)

在CVS當(dāng)中,您可以把本地工作空間中的項(xiàng)目放到一個資源庫的HEAD分支中,CVS把它命名為模塊。一個分支可以有許多模塊??梢灾v,您在本地工作空間中的項(xiàng)目是一個模塊的本地工作拷貝。HEAD分支中具有所有的模塊。模塊可以具有子模塊。模塊可以被拷貝到其他分支中去。



修訂版(Revision)

每個在本地修改的資源文件都屬于某個分支,當(dāng)您提交這個文件的修改后,CVS資源庫都會對這個文件建立一個修訂版,例如開始時某個文件是1.1版,您提交一次修改后,它將變成1.2版。

由于在一個項(xiàng)目當(dāng)中,一些文件的提交要比另一些文件頻繁,所以項(xiàng)目中不同文件的修訂版的標(biāo)號可能不同。



版本(Version)

版本是指某個分支中一個模塊的當(dāng)前狀態(tài)的快照。當(dāng)設(shè)置模塊的版本(Tag as version)時,就意味著在資源庫中建立該模塊的不可修改副本。

一般我們會在每日創(chuàng)建模塊的一個版本進(jìn)行功能或集成測試,也會在項(xiàng)目完成前創(chuàng)建beta1、beta2等版本,會在項(xiàng)目完成后創(chuàng)建release版。

您應(yīng)該在某一版本(Version)上創(chuàng)建分支,便于以后訪問分支基點(diǎn)。

CVSNT的安裝

CVS起源于Unix/Linux平臺,但在Windows平臺上也有CVS的一個實(shí)現(xiàn)――CVSNT,這里我們對CVSNT的安裝做一個簡單介紹,便于您實(shí)驗(yàn)CVS的操作。

首先到CVSNT的主頁http://www.cvsnt.org下載最新版本。

CVSNT的安裝有一些注意事項(xiàng),請讀者盡量按照下面所說的步驟來進(jìn)行安裝,描述主要針對Windows 2000。如果讀者在安裝過程中還有問題,可以參考本文附錄的資源中關(guān)于CVSNT的安裝技巧的文章或郵件列表。

1.        CVSNT可以安裝在Windows NT4 服務(wù)器或工作站SP6, Windows 2000服務(wù)器或?qū)I(yè)版,Windows XP專業(yè)版上。

2.        以管理員賬號登陸,首先修改環(huán)境變量。直接執(zhí)行安裝程序,很有可能在最后會出現(xiàn)無法創(chuàng)建路徑變量的錯誤,為此我們首先修改環(huán)境變量,設(shè)定路徑。假設(shè)我們要把CVSNT安裝到D:\app\cvsnt目錄下(與CVSNT相關(guān)的內(nèi)容最好安裝到NTFS分區(qū)上,也盡量不要使用含有空格的目錄名或者文件名,雖然CVSNT已經(jīng)盡量支持包含空格的目錄名和文件名,但仍有可能出現(xiàn)問題),那么打開控制面板->系統(tǒng)屬性->高級->環(huán)境變量->系統(tǒng)變量中的Path,添加上D:\app\cvsnt并保存設(shè)置。

3.        接下來可以執(zhí)行安裝程序,修改安裝目錄,一步步完成安裝。

4.        從開始菜單的程序組中啟動CVSNT配置程序Configure Server。這時應(yīng)該看到服務(wù)器還沒有運(yùn)行(CVSNT作為系統(tǒng)服務(wù)運(yùn)行),如果已經(jīng)運(yùn)行了,先把它停下來。

5.        選擇第二個選項(xiàng)卡Repositories,首先勾上Repositories prefix(數(shù)據(jù)庫路徑前綴)的選項(xiàng)。CVSNT中只有一個數(shù)據(jù)庫路徑前綴,在這同一個前綴下,可以有多個數(shù)據(jù)庫。相應(yīng)的,所有的數(shù)據(jù)庫都位于數(shù)據(jù)庫路徑前綴對應(yīng)的目錄之下。這里我們假設(shè)數(shù)據(jù)庫都存儲在E:\cvsnt\repo下,點(diǎn)擊省略號按鈕來選擇E:\cvsnt\repo作為數(shù)據(jù)庫路徑前綴。

6.        點(diǎn)擊下面的Add按鈕添加資源庫root,資源庫root可以有多個。比如我們將/prototype作為我們的工作項(xiàng)目的存儲根。注意添加時系統(tǒng)自動把已設(shè)定的E:\cvsnt\repo作為了路徑前綴。

7.        選擇第三個選項(xiàng)卡Advanced,勾上全部選項(xiàng),包括Use local users instead of domain。設(shè)置臨時目錄,假設(shè)為E:\work\cvstemp。注意要保證臨時目錄的安全設(shè)置(右鍵點(diǎn)擊目錄屬性,共享,權(quán)限)給所有賬號以完全控制權(quán)限,包括SYSTEM賬號。并且,絕對不能把臨時目錄設(shè)在諸如C:\WINNT\TEMP或者C:\Documents and Settings下的任何地方,因?yàn)檫@些地方對于用戶的訪問是有限制的。

8.        點(diǎn)擊應(yīng)用以保存設(shè)置,這一點(diǎn)相當(dāng)重要。

9.        現(xiàn)在可以回到第一個選項(xiàng)卡,點(diǎn)擊Start按鈕,服務(wù)應(yīng)該正常啟動運(yùn)行了。如果有問題,可以打開一個命令行窗口,輸入path命令來檢查路徑是否已經(jīng)設(shè)置正確,也許需要重新啟動來使設(shè)置生效。

10.    打開一個命令行窗口,輸入如下命令,用你的實(shí)際計(jì)算機(jī)ip地址、windows用戶名和資源庫root替代尖括號內(nèi)相關(guān)的內(nèi)容:
set cvsroot=:pserver: <windows用戶名>@<計(jì)算機(jī)ip地址>:/<資源庫root>
然后輸入
cvs login
輸入后將提示你輸入windows用戶密碼。
這里的用戶必須是服務(wù)器上的真實(shí)用戶,不過可以給真實(shí)用戶設(shè)定一個不同的使用名alias。使用命令:
cvs passwd -a -r <windows用戶名> <CVS賬號別名>
必須注意,這些名字里最好不要使用任何空格。如果必須的話,可以用雙引號括起來。

11.    到此為止,CVS服務(wù)器已經(jīng)初步設(shè)置完成,可以使用了。缺省情況下,服務(wù)器將作為NT服務(wù)自動運(yùn)行。讀者既可以使用命令行的CVS命令,也可以使用各種CVS客戶端來連接CVS服務(wù)器,執(zhí)行CVS操作。不過,下面我們主要介紹在Eclipse中通過內(nèi)置的CVS支持來使用CVS系統(tǒng)。

在Eclipse中使用CVS系統(tǒng)

基本工作流

開發(fā)者可以提交(commit)自己的工作,并通過更新(update)與其他人的最新修改保持同步。提交是把自己的修改提交給數(shù)據(jù)庫,更新則是得到其他人的修改。

因此,在Eclipse中使用CVS進(jìn)行團(tuán)隊(duì)開發(fā),理想的開發(fā)流程應(yīng)該是這樣的:


圖2:團(tuán)隊(duì)開發(fā)流程

1.        開始工作前,要保證所有工作區(qū)的資源與最新的分枝狀態(tài)一致。對于從頭開始的新項(xiàng)目,首先要連接服務(wù)器,設(shè)定存儲那些資源文件。對于在服務(wù)器數(shù)據(jù)庫中已經(jīng)有記錄的項(xiàng)目,首先要通過更新來保證工作區(qū)的資源狀態(tài)最新。

2.        進(jìn)行本地工作,先在本地保存修改。

3.        與資源庫同步。某一階段工作完成后,要和資源庫的數(shù)據(jù)同步。

1.        首先應(yīng)該更新(Update),檢查所有的Incoming改變,輸入到本地,看是否會影響自己的工作,是否會造成沖突,破壞完整性等等。

2.        檢查完更新后,可以確認(rèn)自己的工作和最新的Branch內(nèi)容是一致的,就可以提交(Commit)自己的修改了,標(biāo)上適當(dāng)?shù)淖⑨尅?br>
設(shè)置資源庫的位置

首先設(shè)置Eclipse來連接CVS服務(wù)器資源庫,它將定義用于選定 CVS 服務(wù)器/資源庫的連接參數(shù)。

切換到CVS Repository Exploring 透視圖,使用菜單Window -> Open Perspective -> Other -> CVS Repository Exploring。


你也可以在Eclipse中設(shè)置一些CVS選項(xiàng),可以通過Window -> Preferences window -> Team。具體含義我們將在后面的章節(jié)中論述。

在CVS Repository Exploring中右鍵選擇new->repository location...,會出現(xiàn)下面屏幕。

在“主機(jī)Host”里可以輸入localhost,因?yàn)槲业腃VS服務(wù)器就在本機(jī)上。

在“資源庫repository”中輸入你要連接的CVS的資源庫名稱,項(xiàng)目數(shù)據(jù)存放在這個路徑下。

在“認(rèn)證Authentication”中輸入你在CVS服務(wù)器上的用戶名和密碼。

在“Connection type連接類型”中選擇pserver,端口是缺省時不用改動。

注意:上述所有參數(shù)的更詳細(xì)解釋,查看CVSNT一節(jié)的具體描述,在實(shí)際項(xiàng)目中,各項(xiàng)參數(shù)的獲得需要聯(lián)系你的CVS管理人員。

接下來可以直接點(diǎn)擊Finish完成設(shè)置。如果你選擇了Validate Connection on Finish,那么,Eclipse會使用你提供的連接參數(shù)連接CVS資源庫,如果失敗,它會通知你。

共享項(xiàng)目

開發(fā)人員可以通過將其現(xiàn)有的項(xiàng)目資源遷移到資源庫中來共享它。

首先在Eclipse 的資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中要共享的項(xiàng)目上點(diǎn)右鍵,選擇Team->Share Project,將出現(xiàn)提示窗口,選擇是使用已知的CVS數(shù)據(jù)庫位置還是新建數(shù)據(jù)庫位置。我們將使用前面建立的連接,當(dāng)然,我們可以定義新的連接,那將出現(xiàn)前面的設(shè)置資源庫的位置步驟。


圖 3. 使用 CVS 資源庫共享本地項(xiàng)目

如果點(diǎn)擊下一步,可以繼續(xù)定義在CVS中是否使用與項(xiàng)目不同的名字作為模塊名,缺省是使用相同的名字。模塊與CVS資源庫的目錄對應(yīng),編寫相同項(xiàng)目的團(tuán)隊(duì)共享CVS資源庫中相同的目錄。

注意在Eclipse右下角的Tasks和Console的位置新出現(xiàn)了一個Synchronize窗口。

同步視圖上工具條的圖標(biāo)標(biāo)明了同步(Synchronize)視圖現(xiàn)在處于的模式。同步(Synchronize)視圖有Incoming(入局)模式、Outgoing(出局)模式、Incoming/Outgoing(入局)/出局)模式和Conflicts(沖突)模式共四種模式。

Incoming模式時,同步(Synchronize)視圖下列出所有需要更新(Update)的資源文件。

Incoming模式時,同步(Synchronize)視圖下列出所有需要提交(Commit)的資源文件。

Incoming和Outgoing模式時,同步(Synchronize)視圖下列出所有需要更新(Update)或提交(Commit)的資源文件。

Conflicts模式時,同步(Synchronize)視圖下列出所有發(fā)生并發(fā)文件修改沖突的資源文件??梢酝ㄟ^合并(Merge)操作來消除對同一文件不同開發(fā)人員并行修改所帶來的沖突。

注意,現(xiàn)在我們僅僅是在CVS 資源庫里增加了一個模塊,項(xiàng)目的所有資源文件并沒有被加到CVS資源庫里。因?yàn)樵谝粋€項(xiàng)目中可能有相當(dāng)一部分資源文件不適合存儲到CVS資源庫中記錄版本信息,比如編輯器生成的臨時文件,編譯生成的.class文件,或者某些編譯過程生成的二進(jìn)制文件等等。因此,Eclipse并不自動把所有文件存儲到數(shù)據(jù)庫中,需要開發(fā)者手工指定把那些文件存儲到CVS資源庫里。

這時的同步視圖上工具條的圖標(biāo)標(biāo)明了同步(Synchronize)視圖現(xiàn)在處于Outgoing模式?,F(xiàn)在Synchronize窗口里列出了項(xiàng)目中尚未加入到CVS資源庫的所有資源文件。

把文件存儲到CVS資源庫里中,需要二步。

第一步,我們需要通知CVS資源庫那些文件將在其中記錄其版本信息。
我們可以在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)或者同步(Synchronize)視圖中,同時選擇多個文件或者目錄,使用右鍵,選擇Team->Add to version control,這時你會發(fā)現(xiàn)在同步(Synchronize)視圖中這些文件或目錄上的灰色箭頭標(biāo)記不見了。注意這些文件并沒有在CVS資源庫中記錄其版本信息,只是通知CVS資源庫。

第二步,我們需要執(zhí)行提交(Commit)操作。
我們可以在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中,同時選擇多個文件或者目錄,使用右鍵,選擇Team->Commit,或者在同步(Synchronize)視圖中,同時選擇多個文件或者目錄,使用右鍵,選擇Commit。

提交時都會提示你輸入注釋,作為提交的說明和提示。例如,第一次提交時我們可以輸入“項(xiàng)目建立”。

如果你提交時選擇的文件或目錄有些沒有經(jīng)過第一步的Add to version control,Eclipse將要求你選擇那些文件或目錄將要被Add to version control。


在此之后,每當(dāng)完成對文件或者項(xiàng)目的修改,需要把最新的狀態(tài)存儲到CVS資源庫中去,就需要執(zhí)行提交(Commit)操作。注意,每次提交時都會提示輸入注釋,這是很重要的,作為每一個狀態(tài)的說明和提示。

我們需要告訴Eclipse那些資源文件被存儲到CVS資源庫中。
我們可以在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)或者同步(Synchronize)視圖中,選擇一個文件或者目錄,使用右鍵,選擇Team->Add to .cvsignore,一個對話框?qū)霈F(xiàn),你可以選擇何種命名規(guī)則用于匹配被忽略的文件或目錄。

啟用 CVS 資源修飾

當(dāng)啟用時此項(xiàng),CVS 將用指示資源的 CVS 狀態(tài)的圖標(biāo)和標(biāo)號修飾來修飾“工作臺”視圖中的資源。

要啟用 CVS 修飾:

1.      從主菜單欄,選擇windows->preferences。

2.      在對話框中,選擇Workbench->Label Decorations。此頁面允許啟用和禁用“工作臺”中不同插件定義的所有修飾。

3.      選擇 CVS 框以啟用 CVS 修飾。

注意:某些情況下,修飾可能不會立即出現(xiàn),原因是它們的計(jì)算成本很高。在這些情況下,將在后臺計(jì)算它們。

導(dǎo)出項(xiàng)目

我們也可以通過從選定的CVS資源庫分支導(dǎo)入代碼來創(chuàng)建新的工作臺項(xiàng)目。首先,我們打開CVS資源庫瀏覽視圖(CVS Repository Exploring Perspective)。

我們能看到資源庫里分支或版本下的CVS模塊,一般我們都是導(dǎo)出HEAD分支下的CVS模塊進(jìn)行主開發(fā)流開發(fā)。

選擇您希望導(dǎo)出的分支或版本項(xiàng)目,并從上下文菜單中選擇Check Out As。

您可以選擇把CVS模塊導(dǎo)出為一個項(xiàng)目,例如下面,我們把HEAD分支下的NTT模塊導(dǎo)出為NTT項(xiàng)目。如果工作臺已經(jīng)存在名稱為NTT的項(xiàng)目,則用CVS模塊覆蓋已有的項(xiàng)目。

您也可以選擇把CVS模塊導(dǎo)出為某一工作臺項(xiàng)目的一部分,例如我們把NTT模塊導(dǎo)出到Prototype項(xiàng)目下的src目錄下。但只有非共享項(xiàng)目或者與所選的遠(yuǎn)程文件夾共享同一 CVS 資源庫的項(xiàng)目中的文件夾才是導(dǎo)出操作的有效目標(biāo)。另外,如果操作的目標(biāo)項(xiàng)目是一個非共享項(xiàng)目,Eclipse將把該項(xiàng)目連接至 CVS 資源庫(例如,項(xiàng)目將成為共享 CVS 項(xiàng)目),但是將忽略先前存在的任何內(nèi)容。

與 CVS 資源庫同步

在 CVS 小組編程環(huán)境中,同步資源涉及兩個不同的進(jìn)程:用分支的最新更改更新和把工作臺的最新更改提交至分支。

在工作臺中進(jìn)行更改時,資源保存在本地。最后您想要將更改提交至分支,以便其他人可以訪問它們。同時,其他人可能已經(jīng)將更改提交至分支。您將想要用這些更改來更新工作臺資源。

更新

當(dāng)您正在對工作臺中的項(xiàng)目進(jìn)行工作時,小組中的其他成員可能正在提交對資源庫中共享的某些資源文件的更改。要獲取這些更改,可以更新您的工作臺以便與分支的狀態(tài)相匹配。

在更新時您可能會遇到?jīng)_突。如果在本地修改了一個資源文件,而在資源庫的分支中具有該資源文件的更新修訂版,則會發(fā)生沖突。

首先,您必須了解三種不同類型的更新。

當(dāng)其他開發(fā)人員已經(jīng)更改并提交了一個文件A:

     * 非沖突更新。您尚未在本地修改A文件時,就會發(fā)生這種更新。你可以直接更新您的工作臺中的文件A,與分支中的文件最新內(nèi)容相匹配。
     * 可以自動合并的沖突更新。對文件A有未提交的本地更改,但是更改于與其他開發(fā)人員在分支中提交的修改在不同行上時,就會發(fā)生這種更新。
     * 不可以自動合并的沖突更新。對文件A有未提交的本地更改,但是更改于與其他開發(fā)人員在分支中提交的修改在ASCII 文件中的一個或多個相同行,或者文件A是二進(jìn)制文件時(二進(jìn)制文件從來就不是可自動合并的)時,就會發(fā)生這種更新。

您可以從兩個位置發(fā)出更新命令:

在Package- Explorer視圖

選擇需要更新文件的上下文菜單Team->Update,但我們不建議您在這里進(jìn)行“更新”。

對于非沖突和可以自動合并的沖突,Eclipse會自動更新本地資源文件。然而,對于不可自動合并的沖突,CVS 將在文件中插入特殊標(biāo)記,以指示不能合并的那些行,這與 CVS 命令行的行為相匹配,但是在與 Eclipse 自動構(gòu)建機(jī)制組合時可能會有問題。

在同步(Synchronize)視圖

在“入局”模式下選擇需要更新文件的上下文菜單中的Update,對于非沖突和可以自動合并的沖突,Eclipse會自動更新本地資源文件。然而,對于不可自動合并的沖突,與在Package- Explorer視圖進(jìn)行更新時的情況稍有不同,Eclipse要求你首先進(jìn)行手工合并雙方的修改,而不會在文件中插入特殊標(biāo)記。

我們應(yīng)該首先在“沖突”模式下解決所有可以自動合并的沖突和不可自動合并沖突。在“入局”模式下選擇上下文菜單Update,只應(yīng)該去解決所有非沖突更改。

解決沖突,可以選擇執(zhí)行沖突文件上下文菜單中的下列操作之一:

     * Override and Update:可以采用分支中的更改,并廢棄您的本地工作。如果已經(jīng)以本地方式無意中進(jìn)行了更改,或者您意識到資源庫中的修訂版比您的修訂版更好,則會發(fā)生此種情況。應(yīng)小心地完成覆蓋本地更改,因您實(shí)質(zhì)上正在拋棄您的工作成果。
     * Override and Commit:可以提交更改,并將該修訂版歸入資源庫。應(yīng)非常小心地完成此項(xiàng)工作,原因是您實(shí)質(zhì)上正在拋棄別人的工作成果。特別是,正在覆蓋的更改可能在分支中具有其它依賴項(xiàng)(例如,可能存在依賴于沖突的其它入局更改)。
     * Open In Compare Editor:首先將您的修改與資源庫中的最新修改進(jìn)行手工合并,以本地方式保存合并的資源。然后把合并后的結(jié)果Mark as Merged,這將把文件的狀態(tài)從沖突更改為出局更改。您就可以選擇提交此合并的結(jié)果。

通常,您想采用第三個選項(xiàng)(即,首先進(jìn)行合并),原因是其它兩個選項(xiàng)都存在工作損失問題。

進(jìn)行手工合并:

1.      在“沖突”模式下,在資源文件列表中選擇一個存在沖突(用紅色箭頭表示)的文件,在上下文菜單中選擇Open In Compare Editor。將會出現(xiàn)資源比較(Comparing resources)視圖。
在資源比較(Comparing resources)視圖中,在左邊表示的是本地“工作臺”數(shù)據(jù),在右邊表示的是資源庫分支數(shù)據(jù)。您可以檢查兩邊數(shù)據(jù)的差別。

2.      使用資源比較(Comparing resources)視圖中來合并更改,可以使用工具條圖標(biāo)所提供的一些方便功能。

     * 整個文檔 — 單擊“從右到左復(fù)制整個文檔”按鈕以將本地編輯器中的文本整個地替換為分支資源的內(nèi)容。
     * 當(dāng)前更改 — 使用“轉(zhuǎn)至下一個差別”和“轉(zhuǎn)至上一個差別”按鈕以導(dǎo)航至想要合并的更改,或者只單擊任一源窗格中期望的更改差別段的某處。按需要單擊“從右到左復(fù)制當(dāng)前更改”按鈕以用分支中相應(yīng)的修改內(nèi)容覆蓋突出顯示的段。
     * 三方比較 — 使用“顯示祖先”按鈕,可以比較三個資源版本之間的差異:“工作臺”中的資源、在分支中提交的資源的版本以及公共祖先(兩個沖突版本都基于該公共祖先)。

文件中不相同的部分會突出顯示以示存在差別。沖突以紅色顯示,入局更改以藍(lán)色顯示,而出局更改以灰色顯示。

3.      一旦完成了將遠(yuǎn)程更改合并到本地文件中,就從彈出菜單中選擇Mark as Merged。這將把本地文件標(biāo)記為已更新,這將把文件的狀態(tài)從沖突更改為出局更改。

提交

可以將已修改的“工作臺”資源提交給資源庫,以便其他小組成員可以查看您的工作。只有在該分支上工作的其他成員才能看見在該分支上提交的那些更改。

可以從兩個位置發(fā)出提交命令:

在Package- Explorer視圖

選擇想要提交的資源。右鍵單擊該資源并從彈出菜單中選擇Team->Commit。在“提交注釋”對話框中,提供對更改的注釋。

如果更改采用以上方式提交的任何文件時都出現(xiàn)了沖突,則操作將失敗。如果發(fā)生這種情況,則必須首先執(zhí)行更新來解決沖突。所以最好是在提交之前進(jìn)行更新,以防工作臺中的資源和當(dāng)前在分支中的資源出現(xiàn)沖突導(dǎo)致提交失敗。

如果正提交的資源中的一個或多個是新的且尚未被添加至 CVS 控制,則在執(zhí)行提交之前將提示您添加這些資源。

在同步(Synchronize)視圖

1.      選擇出局模式,顯示您需要提交的資源(出局更改)。

2.      如果存在沖突(紅色箭頭)。使用前面的方法對沖突進(jìn)行手工合并。一旦解決了所有沖突,就可以提交了。

3.      在“提交注釋”對話框中,提供對更改的注釋。

從分支合并

在創(chuàng)建 CVS 分支并在其中工作了一段時間之后,您可能想將更改從該分支合并到另一分支中,或合并到 HEAD 中。為此,需要了解下列內(nèi)容:

1.      包含更改的分支或版本的名稱。

2.      從中創(chuàng)建分支的版本。這就是設(shè)置分支時提供的版本名。

要合并更改:

1.      確保將合并目標(biāo)裝入到工作空間中。例如,如果想要將更改合并到 HEAD 中,則確保該項(xiàng)目HEAD分支的工作拷貝在工作空間中。

2.      選擇項(xiàng)目并選擇Team->Merge。

3.      輸入合并的起始點(diǎn)。這就是從中創(chuàng)建分支的版本。單擊下一步。

4.      輸入包含想要合并的更改的分支或版本。單擊完成。

5.      資源比較窗口將打開,并顯示工作區(qū)與具有更改的分支之間的所有差異。

6.      手工合并更改然后選擇保存;從上下文菜單中選擇提交。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
版本控制相關(guān)資源( Pragmatic Version Control Sources )
ECLIPSE 小組開發(fā)環(huán)境實(shí)踐: 第2 部分
利用CVSNT在Eclipse中使用CVS 1 - 5
CVS+MyEclipse配合使用教程
CVSNT的安裝與配置
Eclipse團(tuán)隊(duì)CVS簡明教程(1)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服