並行版本管理軟件的使用(1)---3W 王澤賓

聲明:本人非專業的軟件配置管理人員,只是平常工做中常用,如下內容均表明我的觀點,歡迎專業人士指正、補充。
 
What:什麼是並行版本管理?
並行版本管理是軟件配置管理(S CM) 的一部分。軟件配置管理(SCM)通俗來說就是要控制與軟件產品相關的文檔資料、軟件版本、變動文檔以及軟件運行的支持數據等等。並行版本管理主要工做是控制並行開發時的軟件版本。
目前市場上並行管理軟件最爲經常使用的產品包括SVNCVSVSS
在規模較大的軟件公司或者互聯網公司,都會有專門的崗位作這個事情。規模大一點的公司可能會設置配置管理部;規模小一點的有專人負責;規模再小一點的公司,不設崗位,開發人員兼任。
做爲開發人員來說,只要明白基本的原理以及平常使用就足夠了,我看不少公司招聘的時候,把「是否會使用並行版本管理軟件」做爲聘用條件之一。其實這是很簡單的一項技能,你花20分鐘看完個人文章,你就足以應付,再配合一下實踐工做就ok
 
Why:爲何要使用並行版本管理呢?
我從來的觀點:管理工具和管理手段的運用是爲了減輕工做人員的負擔而不是增長負擔。若是僅僅爲了管理的規範化,作一些表面文章,甚至於跟風,那麼你的管理會是很失敗的。爲何要實行版本管理呢?緣由也很簡單:它可以爲研發人員的平常開發工做帶來很大的便利。
實行版本管理到底會帶來什麼好處呢?
l         團隊協做開發
本人對此深有體會,不管是在作C/S客戶端軟件仍是開發B/S WEB開發,理論上,在一個項目組分工合理的狀況下,團隊成員應該各負其職,不會有工做上的重疊,但在實際工做中遠遠達不到這種理想狀況。當項目達到集成階段,是要把各個成員的開發結果捏合在一塊兒,相互之間必然產生必定程度的耦合。任何一方的變更,都有可能影響他人的已經完成的工做。最多見的災難就是代碼互相覆蓋。
l         分支版本開發
若是您公司從事的是項目開發,這個好處頗有可能體會不到。由於項目開發通常到最終驗收就結束了,之後基本上常規性的維護工做,不會有太多的版本發佈。
若是您公司從事的是產品開發,那麼這個好處就很是明顯。您所開發的產品不管是自行運營銷售仍是代人開發,都會存在版本升級的問題。
一般,您的版本管理庫中會包含3部份內容:主幹開發版、枝幹開發版和發佈版。
主幹開發版:繼續開發的版本,版本號一直在增加,好比作完了Version1.0,繼續作Version2.0,這個分支就是主幹主幹開發版。
枝幹開發版:正在維護的版本。您除了進一步開發以外,之前的多個版本可能須要繼續維護,這些版本就是枝幹開發版。
發佈版:已經發布的產品或在生產環境中運營的版本。這個版本是靜態版本,它做爲項目的一個里程碑進行了固化,再也不容許改動。最終用戶只能從發佈版中獲取所須要的產品。
l         錯誤版本回滾
新版本發佈以後,即便這個經過了最爲嚴密的驗收測試,依然可能存在着重大缺陷。一旦出現這種狀況,整個產品就必須下線,進行版本回退。這種狀況還真很多見,我反正就在之前的公司都碰到過。這種狀況是災難性的,損失不可避免,採用錯誤版本回滾的方式,至少能夠提供必定程度的補救。
 
l         歷史修改記錄
經過版本管理系統,你可以很方便地查閱項目的演變歷史,獲取任意時間的相關資料。有的領導也拿這個做爲人員工做量考覈的依據。
 
Where:什麼樣的場合須要使用並行版本管理呢?
若是您的公司規模很小,每一個項目的開發人員就那麼一兩個,項目也不復雜,我倒以爲不必引進配置管理的工做了,白白增長工做量。開發人員將文檔、源代碼和發行版本直接存放到一臺文件服務器上,或者直接存放在開發人員的機器上均可以。既節約資源,又省去管理成本,何樂而不爲。
若是一個項目會發生常常性的變更,好比修復bug,升級版本等,或者多個版本同時並行開發,我以爲你仍是應該實行版本管理。另外,若是你的公司可能有較多的項目,須要將項目成果保留一段時間的話,實行版本管理也是個不錯的選擇。
 
以上基本可以講清楚並行版本管理的有關知識,目前開發人員都選擇什麼的並行管理軟件呢?各個軟件到底有什麼優缺點呢?我將結合我的的經歷與你們共享。
相關文章
相關標籤/搜索