摘要 CVS很酷,但Subversion更酷。然而,如果你在使用Eclipse進行開發,那麼你可能直到近來才能利用Subversion帶來的優點。隨著Subclipse的發行,Subversion可能會最終在你的Eclipse IDE環境充分發揮其威力而壓倒CVS。
一、SCM和Subversion簡介
軟體組態管理(SCM)是管理源碼並保持其安全的良好藝術,它能實現源碼與其他團隊成員之間保持共用,並且能夠對之加以保護。良好地利用SCM,你能夠容易地跟蹤軟體的發行和新的開發分支;這樣以來,可以更為容易地標識和修正發行產品中的錯誤。
其實,有大量的SCM工具可用,既有開源的和也有商業化的,例如StarTeam,Perforce,BitKeeper和ClearCase。在開源世界裡,事實上的SCM標準是並發版本管理系統(CVS),它被廣泛應用於世界範圍內的成百上千的開源和商業工程。然而,CVS也存在下列許多固有的缺陷,這使得它無法非常完美地適合於現代工程開發:
實質上針對文字檔的設計使得CVS處理二進位檔案能力比較差。在每一次提交時,二進位檔案被以整體形式傳輸和儲存,這將帶來頻寬和磁碟空間的浪費。
在CVS中,你不能移動檔案和目錄。你唯一的選擇基本上就是刪除並且重新添加它們,從而失去了整個過程中的所有的檔案曆史資訊。
CVS中沒有實現原子提交的概念。比方說,你要把10個檔案提交到伺服器,而該提交操作往往在整個過程的中途停了下來。(這很可能會發生,如果某人同時提交一個檔案,或甚至如果你的網路失敗或你的PC重新啟動的話。)在這種情況下,伺服器將僅記錄下你的修正的一半資訊,這可能會使代碼基部分處於一種潛在地不穩定的狀態。
Subversion是一種比較新的開源SCM工具,其設計目的是力圖從根本上克服原CVS所具有的限制。它是一種良好設計的工具,具有適合於現代開發的許多新特徵:
· 提交是原子化的。提交的檔案都能夠被正確加入到一個新的修訂當中,否則倉庫不會被更新;並且每一個新的修訂僅由一次提交中的變化部分組成。
Subversion對文本和二進位檔案使用一種巧妙的二進位技術,這既最佳化了網路流量也最佳化了倉庫磁碟空間。
在Subversion中,每一次修訂都代表了一個特定時間內完整的分類樹拷貝。檔案和目錄可以不加限制地進行移動。
Subversion僅儲存兩個版本之間的修改內容,這不僅節約了磁碟空間,並且意味著標識一個新版本或建立一種新的子內容幾乎可以立即實現。
你可以以多種途徑來存取一個Subversion倉庫,具體則依賴於你的需要:使用HTTP或HTTPS(與WebDAV一起使用),使用快速的專利性svn:協議,或直接經由本地檔案,等等。
二、Subclipse外掛程式與Eclipse的整合
一種良好的SCM應該與你的工作環境緊密地整合到一起。沒有誰真正喜歡轉到命令列以把檔案添加到倉庫。Eclipse很早就實現了CVS整合,但是直到最近Subversion使用者仍沒有被引起重視。現在,新的Subclipse外掛程式提供了在Eclipse中的一種平滑的Subversion整合。
(一) 安裝Subclipse外掛程式
下面,你以通常的方法從更新網站下安裝Subclipse:
1.開啟"Find and install"視窗("Help>Software Updates>Find and Install")。
2.選擇"Search for new features to install"選項並點擊Next。
3.點擊"New Remote Site"並且建立一遠端站台,使用名字Subclipse和URL http://subclipse.tigris.org/update_1.0.x(參考圖1)。
4.在結果安裝視窗中,把"Subeclipse in the Features"選擇到安裝列表中,並且通過嚮導來開始安裝外掛程式。
5.完成這些之後,重新啟動Eclipse。現在,你可以繼續往下進行!
圖1.安裝Subclipse外掛程式