并行版本管理軟件的使用(1)---3W 王澤賓
聲明:本人非專業(yè)的軟件配置管理人員,只是日常工作中經(jīng)常使用,以下內(nèi)容均代表個人觀點,歡迎專業(yè)人士指正、補(bǔ)充。
What:什么是并行版本管理?
并行版本管理是軟件配置管理(SCM)的一部分。軟件配置管理(SCM)通俗來講就是要控制與軟件產(chǎn)品相關(guān)的文檔資料、軟件版本、變更文檔以及軟件運(yùn)行的支持?jǐn)?shù)據(jù)等等。并行版本管理主要工作是控制并行開發(fā)時的軟件版本。
目前市場上并行管理軟件最為常用的產(chǎn)品包括SVN、CVS和VSS。
在規(guī)模較大的軟件公司或者互聯(lián)網(wǎng)公司,都會有專門的崗位做這個事情。規(guī)模大一點的公司可能會設(shè)置配置管理部;規(guī)模小一點的有專人負(fù)責(zé);規(guī)模再小一點的公司,不設(shè)崗位,開發(fā)人員兼任。
作為開發(fā)人員來講,只要明白基本的原理以及日常使用就足夠了,我看很多公司招聘的時候,把“是否會使用并行版本管理軟件”作為聘用條件之一。其實這是很簡單的一項技能,你花20分鐘看完我的文章,你就足以應(yīng)付,再配合一下實踐工作就ok。
Why:為什么要使用并行版本管理呢?
我歷來的觀點:管理工具和管理手段的運(yùn)用是為了減輕工作人員的負(fù)擔(dān)而不是增加負(fù)擔(dān)。如果僅僅為了管理的規(guī)范化,做一些表面文章,甚至于跟風(fēng),那么你的管理會是很失敗的。為什么要實行版本管理呢?原因也很簡單:它能夠為研發(fā)人員的日常開發(fā)工作帶來很大的便利。
實行版本管理到底會帶來什么好處呢?
l 團(tuán)隊協(xié)作開發(fā)
本人對此深有體會,無論是在做C/S客戶端軟件還是開發(fā)B/S WEB開發(fā),理論上,在一個項目組分工合理的情況下,團(tuán)隊成員應(yīng)該各負(fù)其職,不會有工作上的重疊,但在實際工作中遠(yuǎn)遠(yuǎn)達(dá)不到這種理想情況。當(dāng)項目達(dá)到集成階段,是要把各個成員的開發(fā)結(jié)果捏合在一起,相互之間必然產(chǎn)生一定程度的耦合。任何一方的變動,都有可能影響他人的已經(jīng)完成的工作。最常見的災(zāi)難就是代碼互相覆蓋。
l 分支版本開發(fā)
如果您公司從事的是項目開發(fā),這個好處很有可能體會不到。因為項目開發(fā)一般到最終驗收就結(jié)束了,以后基本上常規(guī)性的維護(hù)工作,不會有太多的版本發(fā)布。
如果您公司從事的是產(chǎn)品開發(fā),那么這個好處就非常明顯。您所開發(fā)的產(chǎn)品無論是自行運(yùn)營銷售還是代人開發(fā),都會存在版本升級的問題。
通常,您的版本管理庫中會包含3部分內(nèi)容:主干開發(fā)版、枝干開發(fā)版和發(fā)布版。
主干開發(fā)版:繼續(xù)開發(fā)的版本,版本號一直在增長,比如做完了Version1.0,繼續(xù)做Version2.0,這個分支就是主干主干開發(fā)版。
枝干開發(fā)版:正在維護(hù)的版本。您除了進(jìn)一步開發(fā)之外,以前的多個版本可能需要繼續(xù)維護(hù),這些版本就是枝干開發(fā)版。
發(fā)布版:已經(jīng)發(fā)布的產(chǎn)品或在生產(chǎn)環(huán)境中運(yùn)營的版本。這個版本是靜態(tài)版本,它作為項目的一個里程碑進(jìn)行了固化,不再允許改動。最終用戶只能從發(fā)布版中獲取所需要的產(chǎn)品。
l 錯誤版本回滾
新版本發(fā)布之后,即使這個通過了最為嚴(yán)密的驗收測試,依然可能存在著重大缺陷。一旦出現(xiàn)這種情況,整個產(chǎn)品就必須下線,進(jìn)行版本回退。這種情況還真不少見,我反正就在以前的公司都碰到過。這種情況是災(zāi)難性的,損失不可避免,采用錯誤版本回滾的方式,至少可以提供一定程度的補(bǔ)救。
l 歷史修改記錄
通過版本管理系統(tǒng),你能夠很方便地查閱項目的演變歷史,獲取任意時間的相關(guān)資料。有的領(lǐng)導(dǎo)也拿這個作為人員工作量考核的依據(jù)。
Where:什么樣的場合需要使用并行版本管理呢?
如果您的公司規(guī)模很小,每個項目的開發(fā)人員就那么一兩個,項目也不復(fù)雜,我倒覺得沒必要引進(jìn)配置管理的工作了,白白增加工作量。開發(fā)人員將文檔、源代碼和發(fā)行版本直接存放到一臺文件服務(wù)器上,或者直接存放在開發(fā)人員的機(jī)器上都可以。既節(jié)約資源,又省去管理成本,何樂而不為。
如果一個項目會發(fā)生經(jīng)常性的變動,比如修復(fù)bug,升級版本等,或者多個版本同時并行開發(fā),我覺得你還是應(yīng)該實行版本管理。另外,如果你的公司可能有較多的項目,需要將項目成果保留一段時間的話,實行版本管理也是個不錯的選擇。
以上基本能夠講清楚并行版本管理的有關(guān)知識,目前開發(fā)人員都選擇什么的并行管理軟件呢?各個軟件到底有什么優(yōu)缺點呢?我將結(jié)合個人的經(jīng)歷與大家共享。
本文出自 “
網(wǎng)站架構(gòu)之家” 博客,請務(wù)必保留此出處
http://wangzebin.blog.51cto.com/653300/130423本文出自 51CTO.COM技術(shù)博客