Eclipse下使用Subversion跟蹤報(bào)道
本節(jié)和大家討論一下Eclipse下使用Subversion情況,既是Subclipse在Eclipse下是如何使用的,主要包括SCM和Subversion簡(jiǎn)介和Subclipse插件與Eclipse的集成。
CVS很酷,但Subversion更酷。然而,如果你在使用Eclipse進(jìn)行開發(fā),那么你可能直到近來才能利用Subversion帶來的優(yōu)點(diǎn)。隨著Subclipse的發(fā)行,Subversion可能會(huì)最終在你的EclipseIDE環(huán)境充分發(fā)揮其威力而壓倒CVS。
一、SCM和Subversion簡(jiǎn)介
軟件配置管理(SCM)是管理源碼并保持其安全的良好藝術(shù),它能實(shí)現(xiàn)源碼與其他團(tuán)隊(duì)成員之間保持共享,并且能夠?qū)χ右员Wo(hù)。良好地利用SCM,你能夠容易地跟蹤軟件的發(fā)行和新的開發(fā)分支;這樣以來,可以更為容易地標(biāo)識(shí)和修正發(fā)行產(chǎn)品中的錯(cuò)誤。
其實(shí),有大量的SCM工具可用,既有開源的和也有商業(yè)化的,例如StarTeam,Perforce,BitKeeper和ClearCase。在開源世界里,事實(shí)上的SCM標(biāo)準(zhǔn)是并發(fā)版本管理系統(tǒng)(CVS),它被廣泛應(yīng)用于世界范圍內(nèi)的成百上千的開源和商業(yè)工程。然而,CVS也存在下列許多固有的缺陷,這使得它無法非常完美地適合于現(xiàn)代工程開發(fā):
實(shí)質(zhì)上針對(duì)文本文件的設(shè)計(jì)使得CVS處理二進(jìn)制文件能力比較差。在每一次提交時(shí),二進(jìn)制文件被以整體形式傳輸和存儲(chǔ),這將帶來帶寬和磁盤空間的浪費(fèi)。在CVS中,你不能移動(dòng)文件和目錄。你唯一的選擇基本上就是刪除并且重新添加它們,從而失去了整個(gè)過程中的所有的文件歷史信息。·CVS中沒有實(shí)現(xiàn)原子提交的概念。比方說,你要把10個(gè)文件提交到服務(wù)器,而該提交操作往往在整個(gè)過程的中途停了下來。(這很可能會(huì)發(fā)生,如果某人同時(shí)提交一個(gè)文件,或甚至如果你的網(wǎng)絡(luò)失敗或你的PC重新啟動(dòng)的話。)在這種情況下,服務(wù)器將僅記錄下你的修正的一半信息,這可能會(huì)使代碼基部分處于一種潛在地不穩(wěn)定的狀態(tài)。
Eclipse下使用Subversion 時(shí),Subversion是一種比較新的開源SCM工具,其設(shè)計(jì)目的是力圖從根本上克服原CVS所具有的限制。它是一種良好設(shè)計(jì)的工具,具有適合于現(xiàn)代開發(fā)的許多新特征:提交是原子化的。提交的文件都能夠被正確加入到一個(gè)新的修訂當(dāng)中,否則倉(cāng)庫(kù)不會(huì)被更新;并且每一個(gè)新的修訂僅由一次提交中的變化部分組成。Subversion對(duì)文本和二進(jìn)制文件使用一種巧妙的二進(jìn)制技術(shù),這既優(yōu)化了網(wǎng)絡(luò)流量也優(yōu)化了倉(cāng)庫(kù)磁盤空間。在Subversion中,每一次修訂都代表了一個(gè)特定時(shí)間內(nèi)完整的目錄樹拷貝。文件和目錄可以不加限制地進(jìn)行移動(dòng)。Subversion僅存儲(chǔ)兩個(gè)版本之間的修改內(nèi)容,這不僅節(jié)約了磁盤空間,并且意味著標(biāo)識(shí)一個(gè)新版本或創(chuàng)建一種新的子內(nèi)容幾乎可以立即實(shí)現(xiàn)。你可以以多種途徑來存取一個(gè)Subversion倉(cāng)庫(kù),具體則依賴于你的需要:使用HTTP或HTTPS(與WebDAV一起使用),使用快速的專利性svn:協(xié)議,或直接經(jīng)由本地文件,等等。
二、Subclipse插件與Eclipse的集成
一種良好的SCM應(yīng)該與你的工作環(huán)境緊密地集成到一起。沒有誰真正喜歡轉(zhuǎn)到命令行以把文件添加到倉(cāng)庫(kù)。Eclipse很早就實(shí)現(xiàn)了CVS集成,但是直到最近Subversion用戶仍沒有被引起重視。現(xiàn)在,新的Subclipse插件提供了在Eclipse中的一種平滑的Subversion集成。
(一)安裝Subclipse插件
Eclipse下使用Subversion是要安裝Subclipse插件,下面,你以通常的方法從更新站點(diǎn)下安裝Subclipse:
1.打開"Findandinstall"窗口("Help>SoftwareUpdates>FindandInstall")。
2.選擇"Searchfornewfeaturestoinstall"選項(xiàng)并點(diǎn)擊Next。
3.點(diǎn)擊"NewRemoteSite"并且創(chuàng)建一遠(yuǎn)程站點(diǎn),使用名字Subclipse和URLhttp://subclipse.tigris.org/update_1.0.x(參考圖1)。
4.在結(jié)果安裝窗口中,把"SubeclipseintheFeatures"選擇到安裝列表中,并且通過向?qū)黹_始安裝插件。
5.完成這些之后,重新啟動(dòng)Eclipse。現(xiàn)在,你可以繼續(xù)往下進(jìn)行!
(二)建立Repository定義
Eclipse下使用Subversion是要建立Repository定義。現(xiàn)在,既然你已經(jīng)安裝完插件;那么,接下來,你需要告訴它你的工程倉(cāng)庫(kù)位于何處。你是在SVNRepository視圖中實(shí)現(xiàn)的。打開這個(gè)視圖("Windows>ShowView>Other>SVNRepository")并且在上下文菜單中選擇"New>RepositoryLocation"以顯示一個(gè)如圖2所示的對(duì)話框。輸入適當(dāng)?shù)腢RL并且點(diǎn)擊"Finish"。
(三)檢出(CheckOut)一個(gè)工程
一旦建立一個(gè)倉(cāng)庫(kù),你就可以在SVNRepository視圖中瀏覽所有的內(nèi)容(見圖3)。我們后面將會(huì)看到,這個(gè)視圖是一種與Subversion進(jìn)行交互的非常方便的方式。
圖3.SVNRepository視圖。 現(xiàn)在,讓我們把一個(gè)工程檢出到你的Eclipse工作區(qū)中。這只需選擇你需要的Subversion倉(cāng)庫(kù),打開上下文菜單,并且選擇"Checkout"即可。這將打開一個(gè)具有兩個(gè)選項(xiàng)的向?qū)В骸heckoutasaProjectconfiguredusingtheNewProjectWizard-這個(gè)選項(xiàng)打開新工程向?qū)В@可以讓你使用內(nèi)建的Eclipse工程類型配置工程。這個(gè)選項(xiàng)通常是最好用的,因?yàn)樗屇闶褂孟嗤墓こ棠0搴团渲闷聊唬?dāng)你創(chuàng)建一個(gè)常規(guī)工程時(shí)你經(jīng)常使用它們。·CheckoutasaProjectintheWorkspace-這個(gè)選項(xiàng)簡(jiǎn)單地在你的包含檢出源碼的工作區(qū)中創(chuàng)建一個(gè)Eclipse工程。 在以上兩種情況下,你仍然需要更新工程的構(gòu)建路徑,因?yàn)樵跈z出該工程源碼之前,Eclipse不能確定這些Java源碼所在的位置。
(四)把一個(gè)新工程導(dǎo)入到倉(cāng)庫(kù)中
Eclipse下使用Subversion時(shí),要把一個(gè)新工程導(dǎo)入到倉(cāng)庫(kù)中。如果你只是啟動(dòng)了一個(gè)新的工程,那么你需要把它導(dǎo)入到Subversion倉(cāng)庫(kù)。Subclipse提供了一種方便的方式來直接從你的IDE內(nèi)部實(shí)現(xiàn)這一點(diǎn)。為此,只需要從PackageExplorer視圖下選擇你的工程,并且在上下文菜單中選擇"Team>ShareProject"。你可以使用現(xiàn)有倉(cāng)庫(kù)之一或創(chuàng)建一新的倉(cāng)庫(kù)定義。在你指定倉(cāng)庫(kù)和工程名之后,你能指定你想放到倉(cāng)庫(kù)中的文件和目錄并且提供一個(gè)初始注釋(見圖4)。這種方法特別有用,因?yàn)樗屇阌羞x擇地導(dǎo)入僅由Subversion管理的文件,即使該工程還包含其它文件(例如生成的類,臨時(shí)文件或其它不是必需的內(nèi)容等)。
【編輯推薦】
- 詳細(xì)講解:Subversion及其Eclipse插件的安裝
- 五大步驟實(shí)現(xiàn)MyEclipse6.5中SVN插件安裝
- 術(shù)語(yǔ)匯編:簡(jiǎn)單剖析Subversion Eclipse
- Myeclipse6.5SVN集成三部曲及其配置七步走
- Google與Eclipse合作 圖謀稱霸開源領(lǐng)域