程式碼管理工具比較

Erosions發表於2014-12-25

軟體配置管理(Configuration Management)是通過技術或行政手段對軟體產品及其開發過程和生命週期進行控制、規範的一系列措施。

初讀上述定義,感覺不是一點點的有點繞口,枯燥和眩暈了,實際上如果仔細去研究軟體工程的理論書籍,有一大堆關於配置管理的概念,定義,理論,工具,總之就是一些把初學者搞暈的東東。所以初學者最好避開這些理論,先去實踐一個最基本的程式碼管理工具,如果公司有Clearcase環境當然是學習Clearcase比較好,如果沒有,下載一些共享的程式碼管理,如CVS(現在已經升級到SVN了),安裝在自己的電腦上,把自己的HelloWorld程式碼全部用這些程式碼管理工具管理起來,就是基本的配置管理了,如果再改進一下HelloWorld,做一個2.0版本,那就已經初窺門徑了。當然,路漫漫其修遠兮,推開一扇門,後面是汪洋大海,慢慢的遨遊吧。

筆者有幸接觸過以下幾種常用的配置管理工具:VSS、SVN、Clearcase,在此做一個小小的總結,並Ctrl+C了以前一些網友的對比評論,不一定準確,只是希望通過這些總結對自己和初學者有所幫助。如果想進一步瞭解這些工具,請baidu和google,如果想深入瞭解,敬請到圖書館借書並實踐。

一、 Visual Source Safe( 簡稱 VSS )

VSS是微軟的產品,是配置管理的一種很好的入門級的工具。VSS最初的名字叫Source Safe,是一家小公司的產品,92年曾經獲了最佳小型管理工具獎,然後立即被微軟收購。但是微軟收購的只是source safe的Windows版本,在美國還有另外兩家公司分別獲得了繼續開發和銷售source safe的Mac版本和Unix版本的許可,在MS買進vss之後,基本上沒有對vss進行任何的研發,MS內部自身也不用vss。

SourceSafe長得很象早先土氣的檔案管理器,的確難看。但是難看不礙事,SourceSafe的優點可以用8個字來概括“簡單易用,一學就會”,這個優點是它老媽Microsoft遺傳下來的,是天生的。雖然SourceSafe並不是免費的,但是在國內人們以接近於零的成本得到它,網上到處可以下載啊。當然Microsoft也不在乎這個小不點的軟體,它屬於“買大件送小件”的角色。如果你合法地得到Visual Studio,你就得到了免費的SourceSafe。

評價如下:

易用性:★★★★★

易學易用是 VSS 的強項, VSS 採用標準的 windows 操作介面,只要對微軟的產品熟悉,就能很快上手。 VSS 的安裝和配置非常簡單,對於該產品,不需要外部的培訓(可以為公司省去一筆不菲的費用)。只要參考微軟完備的隨機文件,就可以很快的用到實際的工程當中。

功能:★★★

VSS 的配置管理的功能比較基本,提供檔案的版本跟蹤功能,對於 build 和基線的管理, VSS 的打標籤的功能可以提供支援。 VSS 提供 share (共享 ) 、 branch( 分支)和合並( merge) 的功能,對於團隊的開發進行支援。 VSS 不提供對流程的管理功能,如對變更的流程進行控制。 VSS 不能提供對異地團隊開發的支援。此外 VSS 只能在 windows 平臺上執行,不能執行在其他作業系統上。

安全性:★★★

VSS 的安全性不高,對於 VSS 的使用者,可以在資料夾上設定不可讀,可讀,可讀 / 寫 , 可完全控制四級許可權。但由於 VSS 的資料夾是要完全共享給使用者後,使用者才能進入,所以使用者對 VSS 的資料夾都可以刪除。這一點也是 VSS 的一個比較大的缺點。

總體成本:★★★★

VSS 沒有采用對許可證進行收費的方式,只要安裝了 VSS ,對使用者的數目是沒有限制的。因此使用 VSS 的費用是較低的。

技術支援:★★★★★

由於 VSS 是微軟的產品,可以得到穩定的技術支援。

二、 SVN(Subversion) - CVS(Concurrent Version System)的替代和升級版本

先說說CVS,CVS是開原始碼的配置管理工具,其原始碼和安裝檔案都可以免費下載。記得在學校讀研的時候,學校實驗室的程式碼全部都用CVS管理,為啥?很簡單,兩個字:免費!它與Eclipse配合,基本上Java的程式碼編寫,程式碼管理和版本管理都可以“免費”搞定了。

SVN(Subversion)是近年來崛起的版本管理工具,被譽為cvs的接班人。目前,絕大多數開源軟體都使用svn作為程式碼版本管理軟體。雖然在 2006年時SVN的使用族群仍然遠少於傳統的CVS,但已經有許多開放原始碼團體決定將CVS轉換為SVN。已經轉換使用SVN的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及許多團體。許多開發團隊換用SVN是因為 Trac、SourceForge、CollabNet、CodeBeamer等專案協同作業軟體以及Eclipse、NetBeans等IDE提供SVN的支援整合。 除此之外,一些自由軟體開發的協作網如SourceForge.net除了提供CVS外,現在也提供專案開發者使用SVN作為原碼管理系統,JavaForge、Google Code以及 BountySource 則以SVN作為官方的原始碼管理系統。2009年,絕大多數CVS服務已經改用SVN。CVS已經停止維護。

易用性 : ★★★★

Subversion支援linux和windows,更多是安裝在linux下。svn伺服器有2種執行方式:獨立伺服器和藉助apache。2種方式各有利弊。目前業界評價的SVN易用性正在提高。

功能:★★★★

SVN 的功能除具備 VSS 的功能外,還具有:

它的客戶機 / 伺服器存取方法使得開發者可以從任何因特網的接入點存取最新的程式碼;它的無限制的版本管理檢出 (checkout :注 1)的模式避免了通常的因為排它檢出模式而引起的人工衝突;它的客戶端工具可以在絕大多數的平臺上使用。同樣, SVN 也不提供對變更流程的自動管理功能。

安全性:★★★★

一般來說, SVN 的許可權設定單一,無法完成複雜的許可權控制;但是 SVN 通過 SVN ROOT 目錄下的指令碼,提供了相應功能擴充的介面,不但可以完成精細的許可權控制,還能完成更加個性化的功能。

總體成本:★★★★★

SVN 是開發原始碼軟體,無需支付購買費用。

技術支援:★★★

同樣因為 SVN 是開發原始碼軟體,沒有生產廠家為其提供技術的支援。如發現問題,通常只能靠自己查詢網上的資料進行解決。

三、 ClearCase

Rational公司的ClearCase是軟體行業公認的功能最強大、價格最昂貴的配置管理軟體。

ClearCase主要應用於複雜產品的並行開發、釋出和維護,其功能劃分為四個範疇:版本控制、工作空間管理(Workspace Management)、構造管理(Build Management)、過程控制(Process Control)。ClearCase通過TCP/IP來連線客戶端和伺服器。另外,ClearCase擁有的浮動License可以跨越UNIX和 Windows NT平臺被共享。

ClearCase的功能比CVS、SourceSafe強大得多,但是其使用者量卻遠不如CVS、SourceSafe的多。主要原因是:ClearCase價格昂貴,如果沒有批量折扣的話,每個License大約5000美元。對於中國使用者而言,這無疑是天價。使用者只有經過幾天的培訓後(費用同樣很昂貴),才能正常使用ClearCase。如果不參加培訓的話,使用者基本上不可能無師自通。

易用性:★★★

ClearCase 的安裝和維護遠比 VSS 複雜,要成為一個合格的 ClearCase 的系統管理員,需要接收專門的培訓。 ClearCase 提供命令列和圖形介面的操作方式,但從 ClearCase 的圖形介面不能實現命令列的所有功能。如果Unix/Linux伺服器上安裝了Samba服務,可以直接通過Windows下Clearcase的客戶端直接訪問原始碼,相對比較簡單。

功能:★★★★★

ClearCase 提供 VSS, SVN所支援的功能,但不提供變更管理的功能。 Rational 另提供了 ClearQuest 工具提供對變更管理的功能,與 VSS不同, ClearCase 後臺的資料庫是專有的結構。 ClearCase 對於 windows 和 unix 平臺都提供支援。 ClearCase 通過多點複製支援多個伺服器和多個點的可擴充套件性,並擅長設定複雜的開發過程。

安全性:★★★★

ClearCase 的許可權設定功能與 SVN 相比, SVN 有獨立的安全管理機制, ClearCase 沒有專用的安全性管理機制,依賴於作業系統。

總體成本:★★

要選用 ClearCase ,需要考慮的費用除購買 license 的費用外,還有必不可少的技術服務費用,沒有 Rational 公司的專門的技術服務,很難發揮出 ClearCase 的威力。如現在網上雖有 ClearCase 的破解軟體,但嘗試應用的公司大多失敗的緣故。另外,對於 web 訪問的支援,對於變更管理的支援功能都要另行購買相應的軟體。

技術支援:★★★★★

Rational 公司已被 IBM 公司收購,所以有可靠的售後服務保證。


四、總結

工具對比一覽表

特性           VSS           SVN             ClearCase

易用性         ★★★★      ★★★          ★★★

功能           ★★★        ★★★★        ★★★★★

安全性         ★★★        ★★★★        ★★★★

總體成本       ★★★★      ★★            ★★★★★

技術支援       ★★★★      ★★★          ★★★★★


以上幾種工具的總結如下: 

1. VSS 的使用簡便易學,但 VSS 的功能和安全性較弱,且只對 windows 平臺進行支援,建議作為專案配置管理的入門時採用的工具;

2. SVN 的安全性和版本管理功能較強,可以實現異地開發的支援,但 SVN 安裝和使用多采用命令列方式,學習曲線高,同時不提供對變更管理的功能,對於小型團隊,可以採用 SVN 進行管理。

3. ClearCase 功能完善,安全性好,可以支援複雜的管理,但學習曲線和學習成本高,需要整合 ClearQuest 才能完成完整的配置管理功能。大公司如果採用異地多研發中心同時開發的模式,一般推薦使用ClearCase。

 

相關文章