摘要:針對軟件工程編碼開發(fā)過程中版本管理問題,討論了代碼版本控制原理及方式,同時對比了幾種常用的版本管理工具,闡述了各自的優(yōu)、缺點,說明各種工具的適用場景,最后指出在團隊開發(fā)中版本控制的重要作用。
關(guān)鍵詞:版本控制;編碼過程;團隊開發(fā)
軟件開發(fā)是一項復(fù)雜而浩大的智力工作,每一個軟件產(chǎn)品的推出都離不開團隊協(xié)作,一個完整的軟件產(chǎn)品是團隊成員共同智慧的結(jié)晶。在團隊協(xié)作過程中,每個成員既各司其職又相互配合,在協(xié)作過程自然會有很多的沖突與不一致,要化解軟件開發(fā)生命周期中此類矛盾就必須要使用版本管理工具,對資源作統(tǒng)一的控制管理。
1 版本管理概述
在團隊開發(fā)中,版本管理是一個繞不過去的問題。每個人要實現(xiàn)的功能是相互依賴的,這就決定開發(fā)環(huán)境必需是完整、統(tǒng)一的;每個人在開發(fā)中進度差異非常大,這就決定了源碼要有一個全局的把控者;每個人都把自己的功能與他人的模塊進行整合,這就決定了在編碼中要有調(diào)試的統(tǒng)一環(huán)境。面對以上的問題怎么處理呢,解決辦法只有一個,引入對工程的版本控制、管理。
版本管理的原理既復(fù)雜又簡單,如下圖所示。首先,在受控環(huán)境中必須一個資源專用服務(wù)器,所有的團隊成員的開發(fā)成果都提交到資源服務(wù)器中;其次,當(dāng)團隊成員需要開展工作時,必需先從資源服務(wù)器中取得整體資源,然后再在本地機器上構(gòu)建開發(fā)環(huán)境;最后,當(dāng)團隊成員完成階段性開發(fā)任務(wù)后及時提交工作成果到資源服務(wù)器上,以實現(xiàn)與其它團隊成員共享開發(fā)資源、成果,其它成員再及的從資源服務(wù)器中更新下來即可。資源服務(wù)器中源碼版本則會隨著團隊成員提交開發(fā)成果而不斷往上變化,團隊中成員每提交一次版本數(shù)就往上增加1。
版本控制原理圖
版本管理作為軟件開發(fā)中一項常規(guī)性的工作,其實現(xiàn)過程不需要團隊成員手動的備份到資源服務(wù)器上,只需要使用相關(guān)管理工具即可。在目前的市場中有眾多的版本控制管理工具,比較主流的有如下幾種:VSS工具、CVS工具、SVN工具、ClearCase工具。
在這些主流的版本管理工具上,有通用的語法及操作命令。如,從中央服務(wù)器上取下資源都使用Chectout的命令,把中央服務(wù)器的最新資源同步到本地客戶端使用Update的操作命令,把本地資源提交到中央資源服務(wù)器上使用Commit命令。Chectout與Update同為從資源服務(wù)器取資源,但也有區(qū)別,只有第一次從服務(wù)器取資源使用Chectout命令,以后要取得服務(wù)器最新資源均用Update命令。
2 VSS工具
VSS版本管理工具的全稱是Visual Source Safe,是一個最古老的版本管理工具。VSS是微軟公司推出一個文件版本管理工具,這個版本管理工具功能相對弱小,適合作為初學(xué)者入門學(xué)習(xí)使用版本管理工具,同時這個工具只能使用在微軟配套的Window操作系統(tǒng)中,不能使用在其它操作平臺中,這就限定其使用的范圍與場景,目前在企業(yè)中比較少這個工具進行版本控制區(qū)管理。
3 CVS工具
CVS版本管理工具的全稱是Concurrent Version System,是在VSS出現(xiàn)若干時期后由開源組織推出的一個新的文件版本管理軟件,其在軟件開發(fā)界流行于2000年2010年時間段,其針對VSS工具中的不足進行了改進與完善,因而它比VSS功能更強大,適用場景更廣,在當(dāng)時得到了非常廣泛的應(yīng)用。其不但可以運行于Window操作平臺,也可以運行于Liux、Unix等平臺系統(tǒng)中。同時,由于其是開源產(chǎn)品,從節(jié)省成本的角度出發(fā),也更受中小企業(yè)的歡迎與喜愛,因而得到了非常廣泛的應(yīng)用,作為老一代的程序員都非常習(xí)慣使用這一版本管理工具。
4 SVN工具
SVN版本管理工具的全稱是Subversion,也是由開源組織推出的一個開源管理管理工具,
在當(dāng)前編程界是非常主流的版本管理工具,其克服了CVS中的眾多缺陷與不足,可以看作是CVS工具的升級版。在CVS中存在眾多的安全隱患,SVN中則已經(jīng)化解掉該問題,CVS中對版本沖突標(biāo)識不友好,在SVN中則進行了改進處理,SVN還可以集成到眾多的開發(fā)工具中,如Eclipse、MyEclipse、NebBean等IDE集成開發(fā)工具,以方便程序中在編碼中直接進行版本控制。在需要時也可以脫離開發(fā)工具而獨立使用,只在安裝客戶端插件即可。
5 ClearCase工具
ClearCase版本管理工具是由Rational公司推出的一個文件管理軟件,其功能非常強大,遠遠超越了SVN、CVS、VSS等版本管理工具。ClearCase版本管理工具不擔(dān)擁有以上幾種工具的常規(guī)功能,還能自動合并開發(fā)過程中的版本分支,無需管理員手動操作,因而極大的提高版本管理的效率。但其也有一些不夠的地方,比如,ClearCase工具過于復(fù)雜,需要專門的管理人員來對它進行配置管理,另外,使用這個工具需要支付相關(guān)費用,對中小企業(yè)來說是一個負(fù)擔(dān),只適合于大型企業(yè)在進行大型項目開發(fā)時使用。
6 結(jié)語
版本一致性是軟件工程團開發(fā)作中必需處理的問題,版本管理工具正是解決這一問題的利器,有了版本管理工具使很多協(xié)作問題迎刃而解,使團隊開發(fā)工作變得高效起來,同時也進一步提高軟件質(zhì)量,推動了軟件工程事業(yè)的發(fā)展。
參考文獻:
[1]劉嘯.主流源碼版本管理工具的特色淺析[J].程序員,2008,(3):116118.
[2]馮嘉俊,趙海燕.分布式版本管理工具Mercurial[J].數(shù)字技術(shù)與應(yīng)用,2015,(1):224225.
[3]徐慧.ClearCase配置管理及其應(yīng)用[J].計算機工程,2005,31(16):107109.
[4]張軍.電信企業(yè)如何搭建ClearCase開發(fā)環(huán)境[J].數(shù)字通信世界,2007,(9):5253.
[5]姜文,劉立康.基于SVN的軟件配置管理和持續(xù)集成[J].電子設(shè)計工程,2016,24(2):15.
作者簡介: 溫立輝(1979),男, 高級工程師,研究領(lǐng)域為系統(tǒng)架構(gòu)集成與分析、關(guān)系數(shù)據(jù)庫應(yīng)用、數(shù)據(jù)挖掘,機器學(xué)習(xí)。