原有的 Eclipse 安裝已集成了對(duì) CVS(一種流行的開放源碼變更管理系統(tǒng))的支持。CVS 的功能及其局限性眾所周知,但是許多小組一直在研究其他版本控制的系統(tǒng),以便提供更好的伸縮性、對(duì)合并變更和分支版本的更好支持以及對(duì)二進(jìn)制文件格式的更好支持。
Subversion(SVN)是最受歡迎的 CVS 替代品,它提供了更好的性能(允許智能本地緩存和數(shù)據(jù)庫后端)、輕松而又快速的分支(branching)以及對(duì)使用 CVS 時(shí)常見的所有問題的應(yīng)答。
繼續(xù)閱讀本文,了解如何向 Eclipse 添加 Subversion 支持,以及如何通過 IDE 執(zhí)行基本的版本控制活動(dòng)。
開始之前
為順利學(xué)習(xí)本文內(nèi)容,您需要下載并安裝 Eclipse(參見參考資料)。為您的平臺(tái)下載 Eclipse SDK 包將為您提供基本的 Eclipse IDE(也稱為 Eclipse Platform)和 Java™ Development Kit。如果您計(jì)劃使用 C/C++ (我正打算這么做),請(qǐng)?jiān)L問 C Development Tooling(CDT)Web 站點(diǎn)并使用更新管理器安裝 CDT(下一節(jié)將介紹如何使用更新管理器)。
您還需要訪問 Subversion 存儲(chǔ)庫。如果需要建立一個(gè) Subversion 存儲(chǔ)庫,可在 Subversion 的 Web 站點(diǎn)(參見 參考資料)中找到一些出色的參考資料。出于演示目的,我將向您展示如何檢出 Subclipse 項(xiàng)目,并在局域網(wǎng)上使用存儲(chǔ)庫中的項(xiàng)目。
將 Subclipse 添加到 Eclipse
Subclipse 是一個(gè)為 Eclipse IDE 添加 Subversion 支持的項(xiàng)目。我們將使用 Eclipse 的更新管理器將 Subclipse 添加到 Eclipse IDE。在 Eclipse 中的 “Help” 菜單中選擇 Software Updates > Find and Install 打開更新管理器。
除了使用這個(gè)更新管理器查找軟件更新外,我們還可以使用該更新管理器查找并安裝新特性,如 Subclipse。務(wù)必選中 Search for new features to install,然后單擊 Next 以繼續(xù)。Eclipse 會(huì)顯示更新管理器的下一個(gè)面板。
由于我們需要的是特定特性,所以取消選中現(xiàn)有站點(diǎn),然后單擊 New Remote Site,顯示 New Update Site 對(duì)話框(參見圖 3)。我們將使用此對(duì)話框?qū)?Subclipse 更新站點(diǎn)添加到列表。
在 Name 中輸入您需要的內(nèi)容(Subclipse
是最佳選擇),并輸入以下 URL:http://subclipse.tigris.org/update_1.0.x
(當(dāng)前 Subclipse 更新站點(diǎn))。單擊 OK 將 Subclipse 更新站點(diǎn)添加到更新管理器的列表中。
在更新管理器窗口中,單擊 Finish,開始搜索新特性。在本例中,我們需要的新特性是 Subclipse。片刻之后,更新管理器的搜索完成,并顯示搜索結(jié)果。
選中 Subclipse(您可以單擊提示三角符號(hào)來查看此特性的詳細(xì)內(nèi)容),然后單擊 Next 查看該特性的許可條款。接受條款,然后單擊 Next 檢查您選擇安裝的特性。單擊 Finish 下載并安裝 Subclipse。
更新管理器下載 Subversion 組件。在安裝任何內(nèi)容之前,Eclipse 都將通知您該特性沒有數(shù)字簽名(圖 5)。這是您取消安裝的最后一次機(jī)會(huì)。單擊 Install All 繼續(xù)安裝。
安裝 Subversion 后,Eclipse 會(huì)立即通知您可能需要重新啟動(dòng) IDE 才能激活新特性(參見圖 6)。周全起見,重新啟動(dòng) Eclipse。
備份 Eclipse 后,才能安裝并順利使用 Subclipse。
如果在 Mac OS X 或 Linux® 上運(yùn)行 Eclipse,您可能需要安裝 JavaHL 庫,在 Subclipse FAQ 中的 Troubleshooting 部分對(duì)該庫進(jìn)行了描述(請(qǐng)參閱參考資料)。在繼續(xù)嘗試使用 Subclipse 之前,請(qǐng)做好這些準(zhǔn)備工作。
快速測(cè)試
完成安裝之后,測(cè)試新特性總是令人愉快;我們將從 Subversion 存儲(chǔ)庫檢出 Subclipse 的副本,以確保其安裝正確。
在 Eclipse 的 File 菜單中選擇 Import 打開導(dǎo)入管理器(參見圖 7)。選擇 Checkout Projects from SVN,然后單擊 Next。
在 Select/Create Location 面板中(參見圖 8),我們需要?jiǎng)?chuàng)建一個(gè)新位置(因?yàn)樯形催M(jìn)行任何配置),因而單擊 Next 繼續(xù)。若 Next 按鈕禁用,請(qǐng)切換到 Use existing repository location 選項(xiàng),然后返回到 Create a new repository location 以啟用 Next 按鈕。
在接下來的部分(參見圖 9)中,將存儲(chǔ)庫 URL(http://subclipse.tigris.org/svn/subclipse/
)添寫到 Url 字段中,然后單擊 Next。片刻之后,Eclipse 提示您輸入用戶 ID 和口令。如果您在 Subclipse 站點(diǎn)上沒有賬號(hào),請(qǐng)輸入 guest
作為用戶 ID,并輸入空格作為口令,選中 Save Password 框,并單擊 OK。
Eclipse 會(huì)顯示 Subclipse 存儲(chǔ)庫中的文件夾(參見圖 10)。展開 trunk 選中 subclipse 文件夾,然后單擊 Finish 即可檢出您自已的 Subclipse 項(xiàng)目的源代碼副本。由于您對(duì)此沒有任何概念,所以在 New Project 向?qū)崾灸鷷r(shí),請(qǐng)選擇 Simple > Project。
基本的 Subversion 操作
至此,我們已成功地安裝了 Subclipse,并在 Eclipse 設(shè)置中添加了對(duì) Subversion 服務(wù)器的支持,通過從存儲(chǔ)庫下載最新的 Subclipse 源代碼,我們對(duì) Subclipse 進(jìn)行了測(cè)試?,F(xiàn)在該考慮使用我們自已的代碼和 Subversion 存儲(chǔ)庫來做些事情了。
向您展示如何使用 Subversion 之前,先簡(jiǎn)單介紹一下我的存儲(chǔ)庫。它駐留在稱為 dogma 的機(jī)器上,端口為 8000,我為與我的 developerWorks 文章相關(guān)的代碼新建了一個(gè) developerworks 存儲(chǔ)庫。我將項(xiàng)目直接放置在存儲(chǔ)庫的根目錄中。其他存儲(chǔ)庫的根目錄下通常會(huì)有 trunk、tags 和 branches 文件夾,分別用于存放開發(fā)版本、標(biāo)簽和分支。但我不希望為 developerWorks 文章中代碼的標(biāo)簽和分支操作而煩心。
我已經(jīng)添加了兩個(gè)項(xiàng)目,即 forkWork 和 threadWork,這兩個(gè)項(xiàng)目來自我的第一篇 developerWorks 文章。我的 Eclipse 工作區(qū)(參見圖 11)還包含三個(gè)來自 developerWorks 文章的其他項(xiàng)目(getopt_demo、getopt_long_demo 和 readdir_demo)。
現(xiàn)在,我們做好了一切準(zhǔn)備,可以開始工作。
將項(xiàng)目添加到存儲(chǔ)庫
要將新的項(xiàng)目添加到 Subversion 存儲(chǔ)庫,請(qǐng)右擊該項(xiàng)目(可以在任何 Eclipse 的項(xiàng)目視圖或 Navigator 視圖),并且從菜單中選擇 Team > Share Project。Eclipse 會(huì)顯示 Share Project 對(duì)話框。
從 Eclipse 當(dāng)前支持的存儲(chǔ)庫列表中選擇 SVN,然后單擊 Next。接下來的對(duì)話框(參見圖 13)讓您選擇現(xiàn)有存儲(chǔ)庫位置,或者創(chuàng)建一個(gè)新位置。
如果您的存儲(chǔ)庫已列出(如您所見,我已經(jīng)添加了自已的庫),選中它,并單擊 Finish。如果您的存儲(chǔ)庫未列出,請(qǐng)?zhí)砑铀ㄓ嘘P(guān)說明,請(qǐng)參閱 快速測(cè)試),并繼續(xù)。Eclipse 將在存儲(chǔ)庫中創(chuàng)建新目錄,其名稱與項(xiàng)目相同,并顯示項(xiàng)目中的所有文件和文件夾的列表。
在頂部的字段中輸入適當(dāng)?shù)膬?nèi)容來描述此項(xiàng)目,然后單擊 Select All 選中該項(xiàng)目的所有文件。單擊 OK 以檢入項(xiàng)目,并將其當(dāng)前狀態(tài)傳遞給 Subversion 存儲(chǔ)庫。
Subversion 的命令和輸出結(jié)果顯示在 Console 視圖中,通常位于 Eclipse 窗口的底部(如果您查看 Subclipse 究竟對(duì)項(xiàng)目執(zhí)行了什么操作)。
更新項(xiàng)目
版本控制系統(tǒng)的重要特性之一是其他開發(fā)人員能夠隨時(shí)繼續(xù)開發(fā),并在準(zhǔn)備好時(shí)提交其變更。要下載這些變更,并將其與本地副本集成,您需要更新項(xiàng)目。
右擊您要更新的項(xiàng)目,然后從菜單中選擇 Team > Update。Eclipse 將從存儲(chǔ)庫中檢索任何變更,并嘗試將它們與本地副本合并。
添加文件或目錄
如果將文件添加到項(xiàng)目中(參見圖 15),它不會(huì)自動(dòng)成為版本控制的一部分 —— 您需要明確將其添加到特定的存儲(chǔ)庫中。在下面的屏幕快照中,您可以看到,我已經(jīng)將 ReadMe.txt 文件添加到了 threadWork 項(xiàng)目中。
右擊新文件,然后選擇 Team > Add to Version Control。就是這樣!下一次將此項(xiàng)目中的變更提交給存儲(chǔ)庫時(shí),新文件也會(huì)檢入。
刪除文件或目錄
如果將文件添加到了與項(xiàng)目不在相關(guān)的存儲(chǔ)庫中,您可以輕松地刪除它。右擊文件,然后選擇 Delete。不需要使用 Team 菜單,Subclipse 自動(dòng)將標(biāo)記要?jiǎng)h除的文件,并將它從項(xiàng)目中移除。下一次將變更提交給存儲(chǔ)庫時(shí),該文件被刪除了。
重命名文件或目錄
要重命名 Subclipse 控制的文件或目錄,請(qǐng)右擊它,然后選擇 Rename。在輸入字段中鍵入項(xiàng)的新名稱,按 Enter 鍵。文件是在項(xiàng)目中重命名的,重命名操作(通過 Add 操作添加新名稱、通過 Delete 操作刪除舊名稱)排隊(duì)等待您下一次提交。在圖 16 中,您可以看到將 main.c 重命名為 threadWork.c 之后、提交更改之前的 threadWork 項(xiàng)目。注意,Subclipse 為 “新” 文件添加的藍(lán)色小加號(hào)表示該文件被安排在下一次提交時(shí)添加。
忽略文件
如果項(xiàng)目生成文件,或者包括您不想檢入的 Subversion 存儲(chǔ)庫文件,則可以通知 Subclipse 忽略它們。右擊您要在版本控制中排除的文件或目錄,然后選擇 Team > Add to svn:ignore 即可顯示Add to svn:ignore 對(duì)話框。
單擊 OK 將這個(gè)特定的文件添加到項(xiàng)目目錄的 svn:ignore 屬性中。選擇 Wildcard extension 忽略具有當(dāng)前文件擴(kuò)展名的所有文件,或選擇 Custom pattern 在忽略列表中添加您自己的通配符。下一次提交變更時(shí),對(duì)忽略列表的這些更改將添加到存儲(chǔ)庫中。
提交更改
如果您對(duì)項(xiàng)目的變更感到滿意,確定了您的代碼可以編譯,并且已經(jīng)對(duì)變更進(jìn)行測(cè)試,則應(yīng)將它們提交給 Subversion 存儲(chǔ)庫。在您的工作站崩潰時(shí),它可以作為一個(gè)備份,并允許其他開發(fā)人員更新其本地副本以包含您的變更。
在嘗試提交變更之前,請(qǐng)確保更新您的項(xiàng)目(參閱 “更新項(xiàng)目”)。右擊項(xiàng)目,并從菜單中選擇 Team > Commit。Eclipse 會(huì)顯示一個(gè) Commit 對(duì)話框(參見圖 18),其中匯總了您作出的變更。
如果仔細(xì)觀察,您會(huì)看到一個(gè)屬性更改為項(xiàng)目目錄(我已經(jīng)添加了 svn:ignore
屬性,以使某些文件保留在存儲(chǔ)庫外),并且在添加 threadWork.c 時(shí),刪除了 main.c。這一變更對(duì)實(shí)際上表示的是一個(gè)操作(文件重命名)。
此時(shí),如果您要使某些資源保留在存儲(chǔ)庫外,則可以取消對(duì)這些資源選擇。如果您在一個(gè)文件中完成了部分工作,并且不希望檢入未完成的變更,則這種方法非常有用。在頂部的文本字段中輸入適當(dāng)?shù)淖⑨專缓髥螕?OK 將變更檢入存儲(chǔ)庫。
結(jié)束語
Subclipse 項(xiàng)目將對(duì) Subversion 版本控制系統(tǒng)的支持與 Eclipse 出色的團(tuán)隊(duì)項(xiàng)目管理功能集成在一起(后者僅對(duì) CVS 服務(wù)器提供開箱即用的支持)。使用 Eclipse 的更新管理器,您可以輕松地將 Subclipse 添加到您的 Eclipse 安裝中,這允許您直接從 Eclipse 中使用這一高級(jí)(至少我是這么認(rèn)為)版本控制系統(tǒng)。
雖然將項(xiàng)目添加到存儲(chǔ)庫 —— 并管理您的項(xiàng)目資源(如果存在)—— 對(duì)不熟悉 Subversion 的用戶來說,是一項(xiàng)望而生畏的任務(wù),但常用操作的過程非常簡(jiǎn)單。本文為您詳細(xì)介紹了日常操作,幫助您熟悉 Subclipse。
參考資料
學(xué)習(xí)關(guān)于作者
聯(lián)系客服