Changing the sharing of a project
http://minyongcheng.iteye.com/blog/1749191
選中項目右鍵-Properties-CVS-Change Sharing-去掉鉤選框-選中顯示的cvs地址OK即可
====== http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2Ftasks-117b.htmChanging the sharing of a project
If a project is shared with a CVS repository location, you can change the sharing information so it is shared with a different repository location. The new location must map to the same repository but can have a different connection method and/or user name.
To change the sharing of a project:
Team programming with CVS
CVS Repositories
Creating a CVS repository location
Changing the properties of a CVS Repository Location
CVS
CVS Repositories view
?
?
===================
http://www.cnblogs.com/aijava/archive/2009/08/28/2191846.html
http://www.cnblogs.com/aijava/archive/2009/08/28/2191845.html
http://www.cnblogs.com/aijava/archive/2009/08/28/2191847.html
//原文地址:http://hi.baidu.com/xublog/blog/item/8265f309c5d35bc93ac76334.html
5.5 特殊情況及其處理
這里將給出一些您每天或在軟件開發周期中可能會碰到的常見情況,以及如何使用Eclipse來處理這些情況的建議。某些情況的解決可能需要使用CVS,但通常只使用Eclipse就可以處理它們。
5.5.1 對項目資源進行重命名、移動和刪除
●?????? 避免重命名CVS控制之下的項目。如果您這樣做了,那么所做的命名修改只在該項目所處的工作空間中有效。保留在CVS中的仍是該項目的初始名。如果必須修 改項目的名稱,那么您最好先使用Team | Disconnect…操作來解除該項目與CVS的關聯關系,然后再對該項目重命名。事實上,重命名后的項目會被看作是新項目。在將重命名后的項目重新連 接到CVS時,您必須像定義任何新項目一樣將該重命名后的項目定義到CVS中。
●?????? 對文件夾的重命名操作會導致CVS中出現一個新文件夾。幸運的是,原文件夾中的內容會被移動到新文件夾中。如果您啟用了CVS首選項Prune empty directories,那么在從CVS檢出資源后,該舊文件夾將不會出現在您的工作空間中。
●?????? 如果您將工作空間中的某資源刪除了,那么在向CVS提交了更改后,保存在CVS中的該資源也會被刪除。要記住的是文件夾決不會在CVS中刪除。CVS首選 項Prune empty directories使得這些文件夾隱藏在視圖中。默認情況下,CVS首選項Prune empty directories是被啟用的。
●?????? 因為修改可能會涉及多個項目,所以在進行全局修改前,您需要確保工作空間中的所有項目是資源庫中的最新版本。Java類的重構是一個可能導致工作空間被廣泛修改的操作。項目間的資源移動也可能產生這種影響。
●?????? 在CVS透視圖中,項目之間資源移動的結果是:所要移動的資源添加到目標項目中,而源項目中的該資源會被刪除。移動到目標項目中的資源必須被添加到版本控制中。而資源重命名的效果與此相同。
●?????? 在文件被修改后,如果您要執行諸如同步等CVS操作,那么我們建議您在項目層次上進行同步(即使您的更改可能僅涉及一個單獨文件)。例如,如果您對一個文 件進行了重命名這一CVS的刪除和添加操作,那么在文件層次上的同步將只會檢測添加操作而不檢測刪除操作。而項目層次上的同步則會對添加和刪除操作都進行 檢測。
●?????? 在所進行的修改涉及整個應用程序的情況下,您應該將這次修改通知給自己所在的小組,以避免不必要的沖突。此時,一旦條件滿足,您就應該提交修改。沖突的解決可能是冗長乏味而又難以解決的。
5.5.2 取消修改:使用替換和比較操作
有時,我們都希望事情能夠重新開始。在人的一生中, 這可能不容易。但是對于Eclipse和CVS來說,這要簡單得多。根據您的需要,您有多種選擇。在先前的幾章中,您看到了如何使用快捷菜單操作 Replace With和Compare With用工作空間中的本地歷史記錄來替換和比較資源。通過使用CVS,您對資源的替換和比較操作就有了額外的選擇。如果您尚未最終完成某個修改,而且之 后一段時間里根本就沒有繼續這次修改。這種情況下,Compare With操作可能會非常有用,它會使您記起上次停止修改的地方。在使用上述Replace With和Compare With操作時,您是用來自HEAD流(或者其他分支/版本、某一個具體版本)的最新資源來替換或比較當前資源的。
5.5.3 通過建立分支來進行版本維護和新版本開發
在小組已經交付了您的應用程序并準備開始下一個版本的開發工作時,您可能喜歡所有的后續開發能在下一版本所指派的特定分支處開始,同時還要允許先前版本的服務。這里所給出的就是在Eclipse中可用的一種方法。
●?????? 在包含了最近已完成版本的分支(或HEAD)中,請選擇所有的項目。然后在所選項目上使用Branch…快捷菜單,并輸入該新版本的新分支名。這樣,所選 擇的全部項目以及這些項目的內容將用下一個版本分支名來標記。在CVS Repositories視圖中,這些項目會被列在那個分支名之下。在從那個分支處將這些項目檢出到您的工作空間之后,接下來的操作是基于該新版本分支 的。
●?????? 您可重復上述過程以創建一個單獨的維護分支。該維護分支獨立于上面所創建的新版本分支。
●?????? 為了能以維護分支為基礎,在工作空間中對新版本分支進行合適的前向修改,您可以通過使用Compare With | Another Branch or Version…操作來確定這兩個分支之間的差別。在Compare視圖中,您可以手動合并從維護分支到新版本分支的更改。
?
?
5.6 其他功能
在這一節中,我們將介紹幾個非常有用的Eclipse功能。這些功能有助于您提高CVS和Eclipse的使用效率。
5.6.1 編輯器中的快速差別功能對CVS的支持
在本書第2章“Eclipse入門”中,您知道編輯 器所支持的快速差別功能可對文件的添加和修改操作加上注釋。如果您在Workbench | Editor | Quick Diff首選項頁面中啟用了Latest CVS Revision選項,那么快速差別功能所添加的文件注釋是在參考CVS中該文件最新版本的基礎之上添加的。在將更改提交到CVS或用CVS中該文件的某 一版本來替換該文件時,快速差別功能所添加的注釋會被刪除。
5.6.2 補丁程序:快速而又簡單地共享更改
補丁程序(patch)是一個包含了某一資源的資源庫實例和該資源的工作空間實例之間差別的文件。補丁程序可表示出一個單獨文件(或完整項目)中的差別。補丁程序允許您共享尚未提交到CVS的更改。有很多原因使得補丁程序非常有用。
●?????? 由于您沒有向CVS提交資源的權限,所以您需要將該補丁程序發送給具有資源提交權限的人,然后再由他向CVS提交資源。
●?????? 您需要為所遇到的問題準備一個應急修改或臨時工作空間。
●?????? 在將重要的更改提交到CVS之前,您可能想讓別人對您的更改進行校驗。在這種情況下,您可以將補丁程序發送給校驗人以讓他們進行測試。
通過使用快捷菜單Team | Create Patch…,我們就可以創建補丁文件。該操作會調用Create Patch向導來指導您完成補丁文件的創建。若要應用某補丁程序,則使用快捷菜單Team | Apply Patch…。該操作會調用Apply Patch向導。Eclipse聯機文檔Workbench User Guide的Working with patches 一節中有關上述兩個操作的描述非常精彩。
5.6.3 項目集:加快新工作空間
小組支持為工作空間中的項目(一個或多個)提供了版 本控制信息的封裝功能。該封裝功能被稱為項目集。項目集的目的是從執行任務所需的資源庫中把需要的全部項目都預先準備到一個工作空間中。在應用程序構建過 程中可能要用到存在相互依賴關系的多個項目。下述操作可能是單調乏味而又容易產生錯誤的:決定所需項目,然后再將這些所需的正確項目從資源庫中手動添加到 工作空間中。項目集是Eclipse的一個功能單元。資源庫提供程序可對是否支持該功能進行選擇(很多資源庫提供程序都會選擇是)。CVS對項目集提供了 支持。一個項目集所封裝的項目可能是由不同資源庫管理的。
項目集信息包含在一個文件中。若要創建該項目集信息 文件,則在菜單欄上選擇File | Export | Team Project Set選項。若要使用該項目集信息文件,則在菜單欄上選擇File | Import | Team Project Set選項。通過使用Export向導,我們可以對項目集中所包含的項目進行定義。出于通用的考慮,最終的項目集信息文件可被發送給別人以在CVS中進行 導入或維護。對于所開發的應用程序來說,您可以為其開發生命周期關鍵節點處的快照維護多個項目集文件。
在導入過程中,項目集文件中定義的所有項目都被從 CVS中自動檢出到您的工作空間中。在導入過程中,一種可能比較穩健的做法是禁用自動構建首選項設置(Workbench首選項頁面中的Build Automatically設置)。通過禁用Build Automatically設置,我們就可以在導入過程中避免編譯和構建操作,進而加快資源的導入。但在導入操作完成后,請記住要重新啟用該首選項。
5.6.4 斷開項目與CVS的連接或為項目重分派一個CVS資源庫
通過使用Team | Disconnect…操作,您可以斷開項目與CVS的連接。在選擇了快捷菜單Team | Disconnect…后會出現一個對話框。該對話框會對您進行詢問,以讓您對是否保存該項目的CVS元數據作出決定。如果選擇了保留該項目的CVS元數 據,那么通過使用Team | Share Project…操作,我們就可以將該項目與同一CVS資源庫進行重新連接。如果您刪除了該CVS元數據,那么可以將該項目共享給其他資源庫。
作為選擇,如想將項目重新分派給另外一個CVS資源庫,那么您可以先為該項目打開CVS資源庫頁面,然后再選擇Change Sharing…按鈕。該操作與使用Disconnect…以及Share Project…操作在邏輯上等價。
?
?
?
5.4.9 處理同一文件的并發更新
首先,我們討論一下一個被建議用來進行修改操作的協 議。當在工作空間中使用資源時,您的操作是獨立于CVS資源庫的。因為發生在資源庫中的更改可能是在您不知道的情況下發生的,所以非常重要的一點是,如果 還未檢查資源庫中是否有更新取代了您的更改,那么您一定不要提交任何更改。Team | Update…操作會用資源庫中那些取代了您的更改的任何更改來更新項目的本地副本。對于文本文件(包括Java類)來說,Team | Update…操作會自動對任何更改進行合并(從資源庫到工作空間),即使這些更改可能造成沖突。在遇到沖突時,合并操作會用特定的CVS標記文本來標識 文件中的沖突,以幫助您識別出沖突行。標記文本并不是與任何類型的文件都兼容,例如它可能導致編譯錯誤。
Update… 操作是一個非常強大的操作,我們在練習時一定要小心。在下面這個例子中,Pat和Lynn更新了一個簡單的文本文件。無需知道它,它們都對以“B”和 “C”開始的行進行了更新。標記文本會對沖突的那些行以及引入了沖突的版本號(1.2)進行了標識。對于一個帶有眾多沖突的復雜Java文件來說,您可能 很難解決其中的沖突。
A is for apple
<<<<<<< sample.txt
B is for bird???????????? (updated by pat )
C is for crow???????????? (updated by pat )
=======
B is for bobcat?????????? (updated by lynn )
C is for cow???????????? (updated by lynn )
>>>>>>> 1.2
D is for dog
E is for excellent
F is for farm
G is for goat...
Team | Synchronize with Repository…操作也支持更新,但是該操作不會自動進行更新。在執行該操作后會顯示Synchronize視圖,并會列出工作空間副本和資源庫最 新資源之間那些不一致的資源。在Synchronize視圖中,您可以對這些差別進行檢查,并決定所要采取的操作。由于Team | Synchronize with Repository…操作可使您擁有更多的控制權,所以我們建議您使用該操作來代替Update…操作。
下面總結一下文件并發更新的基本規則:在對工作空間 中的文件進行修改之前,您必須用資源庫中的所有更改來更新工作空間中的資源。為了安全起見,此時請使用Team | Synchronize with Repository…操作。在Synchronize視圖中,您可執行更新操作,還可提交更改,并可協調沖突。
5.4.10 使用CVS的Watch/Edit支持以避免對同一文件的并行更新
CVS 的Watch/Edit支持是Eclipse本身就提供的。如果您同意使用CVS的Watch/Edit支持,那么在提交資源時,您和小組其他成員之間就 可以避免沖突。在啟用了CVS的Watch/Edit支持之后,您的項目小組可以更好地理解在所有具體項目中,當前誰正更新文件。相反,前面所討論的 CVS Annotate視圖為您所顯示的是先前的更改以及誰做的更改。CVS的Watch/Edit支持是在項目層次上被啟用的。如果在Team | CVS >Watch/Edit的首選項設置頁面中選中了Configure projects to use Watch/Edit on checkout復選框,那么在項目被檢出時,Watch/Edit支持將被自動激活。您也可以通過設置項目的CVS屬性在受CVS管理的現有項目上啟用 Watch/Edit支持。在CVS的Watch/Edit支持被啟用時,該項目中的文件處于只讀狀態。此時,如果您在編輯器中打開了某文件后又試圖對該 文件進行修改,那么CVS服務器會被詢問。在編輯文件時,如果其他人也正在編輯該文件,那么就會出現一個對話框以通知您小組中其他成員也正在編輯該文件 (見圖5-9)。這時,您可以繼續對該文件進行編輯,但是在您提交該文件時需要進行沖突管理。在文件被修改時,檢查標記修飾符 會被添加到該文件上。
圖5-9 顯示其他人正在編輯同一文件的對話框
在項目、文件夾以及文件上執行Team | Show Editors操作后會打開CVS Editors視圖。CVS Editors視圖中列出的是所有正在被其他人更新的資源(見圖5-10)。無論是否處于Watch/Edit的控制之下,您在任何項目及項目資源上都可 以使用Team | Show Editors操作。但是Team | Show Editors操作只會對啟用了Watch/Edit支持的項目資源進行標識。
圖5-10 列出了哪個用戶正在更新文件夾中文件的CVS Editors視圖
您可以使用Team | Edit操作來顯式地通知CVS服務器,讓CVS服務器知道您想對文件進行更新。您還可以使用Team | Unedit操作來通知CVS服務器,讓CVS服務器知道您不想再編輯該文件。這樣,您所做的任何更改都會被從CVS資源庫中檢出。表5-3給出了有關這 些操作的信息。在向CVS提交了更改之后,Watch/Edit列表中的資源會被隱式刪除掉。
Watch/Edit是一個非常有用的工具。但是該 工具的使用需要遵循一些規則,并要注意一些考慮事項。首先,如果要使Watch/Edit功能高效,那么小組中的每個成員都必須在存在潛在沖突的項目中啟 動Watch/Edit功能。其次,您必須連接到CVS服務器上。如果您沒有和CVS服務器相連,并且想更新一個文件,那么您將不得不顯式地將該文件的只 讀狀態(從該文件的屬性頁面中可獲得該屬性)取消掉。當然,該支持現在是折中的。這是因為,沒有任何人知道該更新,而且在提交過程中存在潛在的沖突。如果 您刪除了一個項目并且該項目資源的Watch/Edit首選項設置沒有被啟用,那么CVS服務器將不會被通知,并且CVS服務器會繼續向外報告您正在對這 些資源進行編輯。如果您的小組計劃使用Watch/Edit支持,那么明智的做法是小組中所有人都啟用被標注為Configure projects to use Watch/Edit on checkout的CVS Watch/Edit首選項設置。
5.4.11 恢復被刪除的文件
有時候,在文件被刪除并且更改被提交給CVS后,您 可能需要恢復所刪除的文件。幸運的是,CVS不會將所刪除的文件從該文件所在的資源庫中移除。您可以使用Team | Restore from Repository操作來恢復所刪除的文件。如果被刪除的文件在資源庫中存在,那么您將看到一個對話框。在該對話框中,您可以選擇所要恢復的文件的具體 修訂版(見圖5-11)。而文件的最新修訂版則是一個對所刪除文件的引用。這是因為文件刪除是一個CVS修訂操作。
圖5-11 顯示可恢復的被刪除文件的Restore from Repository對話框
當一個文件被恢復到工作空間中的時候,該文件被看作是一個新文件。在提交該文件之前或提交該文件時,必須將該新文件添加到版本控制中。
5.4.12 其他CVS用戶界面元素
1. Checkout向導
在New wizard對話框中獲得的是CVS向導中的檢出項目。通常,您會使用CVS Repositories視圖來檢出項目。但是,有些CVS資源庫是不允許被瀏覽的。在這種情況下,檢出向導可能就比較有用。但是在這種情況下,您必須預先知道該項目的名稱。
2. CVS備忘單
若要打開Cheat Sheet Selection對話框,則選擇Help | Cheat Sheets…命令。對于CVS任務來說,備忘單用來為分支和合并操作提供幫助。
?
總結
以上是生活随笔為你收集整理的Changing the sharing of a project的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CVS服务器迁移记
- 下一篇: 通过key登录ssh