您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
軟件配置管理工具CVS vs. STARTEAM
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/3/25 17:01:06 ] 推薦標簽:

CVS 是開放源碼的一個奇跡,亦是開放源碼得以延續(xù)和發(fā)展的推動者,是版本控制的經(jīng)典。CVS 是常用的版本控制工具。

Starteam 是一個集合了版本控制和缺陷控制兩種功能的軟件,并且具有 CVS 沒有的強大的圖形界面,易學易用。2002年底被Borland公司收購,發(fā)展前景未知,它是我是用的第一個大型商用版本控制軟件(真的付了Money的呦)。


評價 CVS、STARTEAM 孰優(yōu)孰劣,是一個仁者見仁,智者見智的問題。

Starteam 的圖形化界面,能夠使初學者易于接收,而且其缺陷控制功能的功能(基于數(shù)據(jù)庫的Change Request),是CVS 不具有的,更是相應工具中獨樹一幟的。

CVS的跨平臺能力、強大的命令行、清晰的服務器端數(shù)據(jù)結構更便于數(shù)據(jù)的備份、災難恢復和可靠性。Simple is Butiful 送給 CVS 一定沒錯。

側重不同

CVS專注于配置管理軟件范疇中的版本管理系統(tǒng)。而配置管理系統(tǒng)除了包括版本管理外,還包括構建管理(Build Management)和缺陷跟蹤系統(tǒng)。而Starteam包括了這三項。本文檔也只比較其版本管理系統(tǒng)的異同。

權限控制

一般來說,CVS的權限設置單一,通常只能通過CVSROOT/passwd, CVSROOT/readers, CVSROOT/writers 文件,同時還要設置CVS REPOS的物理目錄權限來完成權限設置,無法完成復雜的權限控制;而STARTEAM無需通過物理路徑的權限設置,而是通過自己的數(shù)據(jù)庫管理,實現(xiàn)了類似WINDOWS NT的域用戶管理和目錄文件ACL控制。

但是CVS通過CVSROOT目錄下的腳本,提供了相應功能擴充的接口,不但可以完成精細的權限控制,還能完成更加個性化的功能。

易用性

Starteam的圖形界面功能強大,但其命令行功能較CVS弱,需要自己編寫shell腳本加強。而隨著WINCVS作為圖形客戶端的可用性的增強,Starteam的強項正在被削弱。

Label的管理

CVS 的 label 建立在文件上,難以確定到底有多少存在的 label ,而STARTEAM(圖形界面)可以很方便知道有哪些 View Label及Revision Label。

CVS的版本分支, label是建立在文件上,工作在其他分支的程序同樣會看到其它分支的label;而Starteam的label只在同一個視圖內(nèi)有效,有獨立的命名空間。

STARTEAM具有Promotion states,可以看作是label的標簽。在label上又封裝一層的 Promotion State 便于記錄版本的提升,和建立自動編譯;而CVS 沒有浮動 label 的概念,只能通過文件記錄方式實現(xiàn)(如我們使用 .promotion 文件記錄當前穩(wěn)定的 label)。

文件緩存

Starteam 存在CACHE目錄,緩存了所有 Checkout的版本的文件,因此 Checkout速度快。而CVS沒有緩存,check out過程較慢,尤其是分支的 Checkout。


但我對此表示懷疑。尤其是Starteam Unix客戶端基于JAVA技術,速度明顯比CVS要慢。


操作文件名和目錄名

CVS的REPOSITORY的物理存儲結構即為項目的組織結構,使得文件名修改和目錄的重新組織成為難題,往往需要管理員權限去手動操作Repository;而STARTEAM的Repository的文件結構和視圖的文件結構可以完全不同,目錄、文件名修改和移動非常方便,基于數(shù)據(jù)庫的文件名管理還可以方便地在不同工程之間共享文件,協(xié)同工作。

CVS是程序員的工具,STARTEAM還是管理項目的工具

個人文件管理或小項目的組織,需要輕量級的管理,和靈活的文件導入、導出,以及和自由代碼的交互,則CVS,Perforce,PVCS,SourceSafe等面向文件的版本控制占優(yōu)勢。對于公司、大項目,需要獨立的測試、QA等分工,還要更多的考慮多樣的用戶權限控制,易用性(圖形界面),缺陷控制,則需要面向工程的STARTEAM來進行版本控制和開發(fā)。

CVS的優(yōu)勢

CVS的優(yōu)勢:項目文件可以方便的組合和移植,這是因為CVS以文件為核心,即面向文件的管理方式。而且目前網(wǎng)絡上很多開放源碼都采用CVS,可以很好溝通。

CVS配置簡單、健壯、可以很容易地移植;STARTEAM集成度較高,移植過程復雜,需要的管理負擔大,需要完善的備份計劃。

CVS是開發(fā)源碼,服務器端存儲易于理解,便于控制;而Starteam為商業(yè)軟件,服務器端存儲方式封閉,難以管理。但是 CVS 不提供圖形界面,有較長的學習曲線。

Starteam 的劣勢

不支持分支的合并,需要過多的手動干預。而CVS可以自動完成。

速度慢,一定程度上影響開發(fā)效率。

不支持并行開發(fā),不能很好解決Merge的問題。而CVS可以智能 Merge。

故障恢復困難,需要有專職管理員維護。而CVS易于維護。

評價優(yōu)劣,不如先用先得

不用刻意去取舍哪一個,只要用好,即可。況且,已經(jīng)有了完美的CVS、STARTEAM互相轉(zhuǎn)換的方法。(參見:《CVS, Starteam互相轉(zhuǎn)換》)

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd