導讀:
ECLIPSE的SUBVERSION插件
摘要 圖1:使用Eclipse Update Manager安裝Subclipse 圖2:選擇最新的Subclipse更新版本 圖3:選擇安裝位置 一旦重啓Eclipse,用戶就會在Preference對話框中看到一個新的SVN區域,並且還會看到有關Subversion活動的其他視圖。可以使用Window -> Show View -> Other...菜單將這些視圖添加到Java Perspective中。 圖4:添加關於Subversion活動的視圖 在Subclipse中配置SVN接口 可以配置Subversion服務器來使用下列協議之一:
圖5:選擇適配器
連接到CodeShare上的SVN庫 現在就可以連接到Subversion庫了。對於dev2dev CodeShare上的項目,可以在訪問選項頁面中看到一個庫的URL,可以從Version控制項目菜單中找到該頁面。 這裏是一個例子 。CodeShare SVN服務器要求用戶使用的用戶名和口令與其在dev2dev網站上所使用的相同。 圖6:連接到Subversion庫 圖7:接受SSL證書 圖8:查看SVN庫中的現有項目 查看SVN中的現有項目 在SVN Repository視圖中可以看到,在許多CodeShare項目以及使用Subversion的其他項目中都可以看到一種共同的佈局,通常如下所示: [pre] https://xjms-ra.projects.dev2dev.bea.com/svn/xjms-ra +-- branches +-- www +-- xjms-ra +-- mqseries (work in progress) +-- activemq +-- tags +-- xjms-ra +-- 0.0.1 (stable versions or releases) +-- 0.0.2 +-- trunk +-- www (project web site) +-- xjms-ra (project source)[/pre] trunk文件夾中包含主線開發源代碼;tags文件夾中包含穩定版或發行版;branches文件夾中包含來自替代開發線上的代碼。在Subversion中,標籤和分支僅僅是選中的源代碼快照的版本化副本。若想獲得更多詳細內容,請參閱Subversion book。 可以在SVN Repository視圖中選擇當前項目的主線或者特定的標籤或分支,並從彈出菜單中選擇Check Out As...動作。接着就會出現一個指導性的標準New Project Wizard,它允許用戶選擇項目類型(例如,Java或Simple Project)、項目名稱和位置,並在需要時配置Java build路徑。 爲新的CodeShare項目配置SVN庫 版本控制庫是任何項目的基礎架構的重要部分,對於開源項目(包括CodeShare上的項目)而言,它還在開發人員與其他社區成員之間的交流中起着重要作用。例如,它允許終端用戶爲最新的代碼捐獻補丁,併爲重要的修復提供早期更新機制。由於它的重要作用,爲一個新項目配置SVN庫並從一開始就將所有的項目代碼置於版本控制之下就顯得非常重要了。 創建了新CodeShare項目之後,SVN庫就包含了trunk、tags和branches文件夾,以及trunk下的www模塊,它包含項目Web首頁的index.html文件。可以在SVN Repository視圖中驗證這些,並使用該視圖中的彈出菜單上的動作創建缺少的文件夾。 我們假設所有的源代碼、build腳本、文檔和其他項目資源被組織爲一個Eclipse項目,那麼就可以在Package Explorer或Navigator視圖中使用彈出菜單中的Team -> Share Project...動作。Share Project Wizard會要求用戶選擇SVN庫類型,然後在下一個頁面中,可以選擇一個現有庫或配置一個新庫。 圖9:在Share Project Wizard中選擇SVN庫類型 圖10:指定模塊名 使用SVN庫 當項目連接到SVN庫以後,在Package Explorer和Navigator視圖中會彈出一個Team菜單,顯示特定於Subversion的全部動作。可以直接運行Commit、Update、Add to svn:ignore,以及Version Control with Subversion一書中所描述的其他動作。該書中的內容也可以在Help -> Help Contents -> Version Control with Subversion下的Eclipse幫助系統中找到。 Subclipse插件還允許使用Eclipse的Team Synchronize視圖,它可以使用戶從庫中清楚地觀察到哪些項將要提交、哪些項已經被其他開發人員更改並需要更新。從這個Synchronize視圖中還可以執行大多數的SVN命令。 可以使用彈出的Team -> Synchronize with Repository菜單或位於主工具欄上的Synchronize...嚮導按鈕將項目或工作集添加到Synchronize視圖中。如果看不到該按鈕,那麼請將Team命令添加到當前視圖中;可以使用Customize Perspective對話框添加,該對話框可從主工具欄上的彈出菜單中獲得(單擊任意空白處),然後,使用Window -> Save Perspective As...菜單以相同的名稱保存透視圖。 圖11:將命令組添加到當前透視圖中 圖12:同步工作區、工作集或選中的資源 圖13:安排自動刷新的時間 修補Subclipse 當在Subclipse中遇到問題時,可以有多種選擇。如果是瑕疵問題,那麼可以簡單地選擇不使用該產品或等待下一個版本。還可以搜索問題跟蹤系統以及郵件列表檔案[url=mailto:[email protected]?subject=][email protected]和[url=mailto:[email protected]?subject=][email protected],有可能找到當前問題的應對措施或解釋。如果這樣沒有幫助,那麼可以在郵件列表中諮詢此問題;如果有興趣試着自己解決,那麼,下面的段落將簡要介紹如何開始調試和修補Eclipse。但是,如果非常希望有所捐助,那麼一種好的方法是訂閱[url=mailto:[email protected]?subject=][email protected]郵件列表,從而使您所做的努力與其他開發人員相協調,根據項目路線圖調整您的想法。 着手開始真的非常容易,即使您以前從沒有使用過Eclipse插件。需要將Subclipse項目放入Eclipse工作區中。Subclipse項目的Subversion庫位於http://subclipse.tigris.org/svn/subclipse/,可以使用以前安裝的Subclipse插件或者諸如命令行Subversion客戶端或TortoiseSVN之類的外部工具來查看代碼。還有一種非常好的辦法是在tigris.org Web站點上註冊,並請求Subclipse項目的Observer角色。然後,就可以使用相同的用戶名連接到Subversion庫了(也可以用“guest”/“guest”進行只讀訪問),還可以在問題跟蹤器(一個集成的Bugzilla庫)上發表評論,並附上對問題的補丁(如果有的話)。 一旦連接到版本控制庫,就需要在自己的工作區中檢查下述項目。對每一個模塊選擇Check Out As...,選擇一個位置和項目名(建議使用下表所列出的實際的插件名),並單擊Finish。
當所有的項目都在Eclipse工作區中之後,就可以試着運行了。使用Run -> Run...菜單(或Debug,在調試器下運行),啓動新的Eclipse Application類型,並在Workspace Plug-Ins列表中選擇Subclipse插件。如果使用已安裝的Subclipse運行IDE,那麼應該在External Plug-Ins列表中取消對Subclipse插件的選擇,但是要使其他插件均保持選中狀態。 圖14:運行Eclipse應用程序 假定已經完成了最棘手的部分,並且已經設法實現了更改,那麼現在就該創建補丁並將其附在Subclipse 問題跟蹤庫中的原始問題上了。在創建補丁以前,請確保從版本控制庫中選擇最新的更改(如果有的話),並最後一次測試更改。如果一切都沒有問題,那麼就使用Team -> Create Patch...菜單來啓動向導。選擇Save To Clipboard或Save In File System,並指定是否需要對子目錄進行循環掃描來查看更改。 圖15:創建補丁 結束語 諸如Subclipse插件之類的Eclipse平臺開源擴展可以提高開發人員的生產力,降低出錯的可能性,並增強開發團隊內部的交流。本文演示瞭如何安裝、配置和使用Subclipse插件來從Eclipse IDE內部與Subversion版本控制系統進行交互。 以Subclipse插件爲例,本文還演示瞭如何設置一個環境以進行Eclipse插件開發、如何調試現有插件、如何創建補丁。事實上,任何Eclipse用戶都可以爲該開源擴展以及Eclipse平臺本身捐獻想法和補丁。 補充鎖定原因和解決: 在eclipse裏提交和更新文件是抱錯。 Attempted to lock an already-locked dir svn: Working copy 'F:/workspace/WebFrame/WebRoot/attach/prodrelation' locked 執行“清除”操作後,問題解決了。 但還是沒搞懂是什麼原因造成的。 |
本文轉自
http://zhangxinjie.blog.ccidnet.com/blog-htm-itemid-204797-type-blog-do-showone-uid-20630.html