5.5 特殊情況及其處理
這里將給出一些您每天或在軟件開發(fā)周期中可能會碰到的常見情況,以及如何使用Eclipse來處理這些情況的建議。某些情況的解決可能需要使用CVS,但通常只使用Eclipse就可以處理它們。
5.5.1 對項目資源進(jìn)行重命名、移動和刪除
●
避免重命名CVS控制之下的項目。如果您這樣做了,那么所做的命名修改只在該項目所處的工作空間中有效。保留在CVS中的仍是該項目的初始名。如果必須修
改項目的名稱,那么您最好先使用Team |
Disconnect…操作來解除該項目與CVS的關(guān)聯(lián)關(guān)系,然后再對該項目重命名。事實上,重命名后的項目會被看作是新項目。在將重命名后的項目重新連
接到CVS時,您必須像定義任何新項目一樣將該重命名后的項目定義到CVS中。
● 對文件夾的重命名操作會導(dǎo)致CVS中出現(xiàn)一個新文件夾。幸運(yùn)的是,原文件夾中的內(nèi)容會被移動到新文件夾中。如果您啟用了CVS首選項Prune empty directories,那么在從CVS檢出資源后,該舊文件夾將不會出現(xiàn)在您的工作空間中。
●
如果您將工作空間中的某資源刪除了,那么在向CVS提交了更改后,保存在CVS中的該資源也會被刪除。要記住的是文件夾決不會在CVS中刪除。CVS首選
項Prune empty directories使得這些文件夾隱藏在視圖中。默認(rèn)情況下,CVS首選項Prune empty
directories是被啟用的。
● 因為修改可能會涉及多個項目,所以在進(jìn)行全局修改前,您需要確保工作空間中的所有項目是資源庫中的最新版本。Java類的重構(gòu)是一個可能導(dǎo)致工作空間被廣泛修改的操作。項目間的資源移動也可能產(chǎn)生這種影響。
● 在CVS透視圖中,項目之間資源移動的結(jié)果是:所要移動的資源添加到目標(biāo)項目中,而源項目中的該資源會被刪除。移動到目標(biāo)項目中的資源必須被添加到版本控制中。而資源重命名的效果與此相同。
●
在文件被修改后,如果您要執(zhí)行諸如同步等CVS操作,那么我們建議您在項目層次上進(jìn)行同步(即使您的更改可能僅涉及一個單獨(dú)文件)。例如,如果您對一個文
件進(jìn)行了重命名這一CVS的刪除和添加操作,那么在文件層次上的同步將只會檢測添加操作而不檢測刪除操作。而項目層次上的同步則會對添加和刪除操作都進(jìn)行
檢測。
● 在所進(jìn)行的修改涉及整個應(yīng)用程序的情況下,您應(yīng)該將這次修改通知給自己所在的小組,以避免不必要的沖突。此時,一旦條件滿足,您就應(yīng)該提交修改。沖突的解決可能是冗長乏味而又難以解決的。
5.5.2 取消修改:使用替換和比較操作
有時,我們都希望事情能夠重新開始。在人的一生中,
這可能不容易。但是對于Eclipse和CVS來說,這要簡單得多。根據(jù)您的需要,您有多種選擇。在先前的幾章中,您看到了如何使用快捷菜單操作
Replace With和Compare
With用工作空間中的本地歷史記錄來替換和比較資源。通過使用CVS,您對資源的替換和比較操作就有了額外的選擇。如果您尚未最終完成某個修改,而且之
后一段時間里根本就沒有繼續(xù)這次修改。這種情況下,Compare
With操作可能會非常有用,它會使您記起上次停止修改的地方。在使用上述Replace With和Compare
With操作時,您是用來自HEAD流(或者其他分支/版本、某一個具體版本)的最新資源來替換或比較當(dāng)前資源的。
5.5.3 通過建立分支來進(jìn)行版本維護(hù)和新版本開發(fā)
在小組已經(jīng)交付了您的應(yīng)用程序并準(zhǔn)備開始下一個版本的開發(fā)工作時,您可能喜歡所有的后續(xù)開發(fā)能在下一版本所指派的特定分支處開始,同時還要允許先前版本的服務(wù)。這里所給出的就是在Eclipse中可用的一種方法。
●
在包含了最近已完成版本的分支(或HEAD)中,請選擇所有的項目。然后在所選項目上使用Branch…快捷菜單,并輸入該新版本的新分支名。這樣,所選
擇的全部項目以及這些項目的內(nèi)容將用下一個版本分支名來標(biāo)記。在CVS
Repositories視圖中,這些項目會被列在那個分支名之下。在從那個分支處將這些項目檢出到您的工作空間之后,接下來的操作是基于該新版本分支
的。
● 您可重復(fù)上述過程以創(chuàng)建一個單獨(dú)的維護(hù)分支。該維護(hù)分支獨(dú)立于上面所創(chuàng)建的新版本分支。
●
為了能以維護(hù)分支為基礎(chǔ),在工作空間中對新版本分支進(jìn)行合適的前向修改,您可以通過使用Compare With | Another Branch
or Version…操作來確定這兩個分支之間的差別。在Compare視圖中,您可以手動合并從維護(hù)分支到新版本分支的更改。