版本管理器的學習總結

版本管理器的學習總結

 

在軟件工程不斷髮展的過程中,各種各樣的軟件開發方法,技術和工具也在發展,其中當然也包括版本控制工具.下面就簡單探討一下版本控制工具的發展及各自的功能特點,希望對公司選擇版本控制工具的時候有參考價值.

版本控制工具的發展大概經歷了3代,從開始的使用鎖的第一代,到集中式的第二代,再到現在的分佈式的第三代.

第一代版本控制工具使用鎖的機制,一次只能一個人修改一個文件,並不支持並行開發.典型例子是RCS,SCCS.

第二代版本控制工具是集中式的,支持並行開發,一次可以修改很多文件,但是有一個很大的限制是必須在提交前合併,如果有衝突的話,典型例子是CVS, Subversion, SourceSafe.

第三代版本控制工具是分佈式的,它沒有集中式提交前合併的限制,主要在2000年以後隨着開源軟件的發展而發展起來,不斷在發展壯大,速度也快,典型例子是Bazaar, Git, Mercurial.

下面表格是3代版本控制工具的比較:

網絡

操作

並行性

模式

典型例子

1

一次一個文件

RCS, SCCS

2

集中式

多個文件

提交前合併

直線式

CVS, SourceSafe, Subversion

3

分佈式

變更集

先提交再合併

DAG

Bazaar,Git,Mercurial

 

 

另外簡單探討一下我熟悉的版本控制工具.

當然提起版本控制工具,就不能不談Clearcase,它提供了強大的版本控制,並行開發,多地同步,安全控制是靠操作系統的權限管理的,缺點就是公司需要根據自己的流程開發集成的腳本和觸發器等工具,而且各個公司的工具也不統一.UCM在Clearcase的基礎上,基於流的概念實現了統一,而且支持變更集的概念,大大提高了效率.最近IBM的Rational又針對這幾年分佈式版本控制工具的特點推出了RTC,目的是在集中式的存儲庫的方式下,體現出分佈式版本控制工具的大部分優點,如支持個人工作環境,通過鎖定的方式支持希不希望並行修改,支持分佈式工作流.當然IBM的這套工具雖然功能強大,但是價格不菲,而且需要服務器的安裝相當複雜,一般都是傳統大公司在使用Clearcase或者UCM,而新公司選擇RTC的比較多.

Subversion是集中式的版本控制工具,並且是開源的,適合中小型的公司,而且也比較簡單,當然功能有限,安全性也差.

Perforce是另一個在很多公司使用的集中式的版本控制工具,支持變更集的概念,有安全控制,性能也很好,但是不開源,當然比Clearcase便宜很多,架構也比Clearcase簡單.值得一試.

Git 基於 DAG 結構 (Directed Acyclic Graph),其運行起來相當的快。在Git發佈後的來年,世界上所有的大型的開源項目全部從Subversion遷移到了Git上,http://www.github.com/真是很大,這可能是這具星球上最強大最牛最酷的SCM系統了。Git可能並不是最簡單的,但它一定會是未來十年的主流。

 

注:以上內容主要來自文章<Version Control by Example>,讀者可以用下面的連接詳細學習.

http://www.ericsink.com/vcbe

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章