使用SVN進行項目版本管理

來源:互聯網
上載者:User

標籤:http   os   使用   strong   檔案   sp   on   代碼   工作   

1.摘要

本文描述了利用SVN進行項目版本管理的方法,涉及項目版本號碼命名規則、SVN目錄結構、第三方程式碼程式庫的管理、版本建立、發布、修訂、合并等行為的方法和原則。

 

2.版本號碼命名規則

版本號碼採用主要版本號.次版本號碼.修訂編號組成。版本的重大變化主要版本號增1,次版本號碼和修訂編號歸零。版本的相對較小的變化主要版本號維持不變,次版本號碼增1,修訂編號歸零。當一個版本發布後出現了bug需要修訂,此時,主、次版本號碼不變,修訂編號增1。

注意:對於主動性的程式功能性的變化,應該增加主或次版本號碼,不應該通過修訂編號來反映。修訂編號只用於對發行版本的bug修訂,一個版本的修訂編號的大小某種程度上可以反映一個版本發布後的穩定情況。

 

3.SVN目錄結構


項目結構

 

第三方庫結構

 

以項目名稱作為SVN倉庫名稱為項目建立獨立的項目倉庫。倉庫主要結構分為branches和tags。branches為工作目錄,tags為發布目錄。項目使用到的第三方庫獨立出來單獨組件項目倉庫,為整個公司的所有項目所共用,倉庫名稱為vendor。

 

3.1項目結構

 

branches

分支,存放未發布版本。具體的某個版本存放在其下的一個以“RB-版本號碼”規則命名的檔案夾。樣本為當前存在兩個正在開發的版本RB-2.0和RB3.0。分支是開發人員的工作目錄,是版本實現過程中的中間成果,具有臨時性。版本發布後,相應的分支即可銷毀。

 

tags

標籤,存放發行版本。具體的某個版本存放在其下的一個以“REL-版本號碼”規則命名的檔案夾。樣本為當前存在兩個發行版本REL-1.0和REL-1.1。該目錄唯讀,即不允許對任何發行版本做任何修改。

 

版本內部結構

doc:文檔存放目錄

src:源碼存放目錄

bin:可執行檔、動態庫、指令碼、設定檔等發布項及pdb、mapfile、obj存放目錄。

 

vendor

存放第三方庫的變更記錄檔案change.xls。由於第三方庫不常變動且庫大,若與項目代碼存放在一起,則簽出代碼量會過大,耗時間長度。因此項目內部僅存放一個變更記錄檔案。倘若出現第三庫存在變更,例如,某項目從3.0開始,xerces庫升級到2.8,則在change.xls檔案中登記即可,change.xls結構如下表所示。

庫名

庫版本

項目版本

變更日期

備忘

ace

4.5

1.0

2010-1-1

 

boost

1.39

1.0

2010-1-1

 

xerces

2.6

1.0

2010-1-1

 

xerces

2.8

3.0

2011-12-29

 

上表第4行表示在項目3.0時,xerces庫從2.6升級到了2.8。

 

3.2第三方庫結構

第三方庫單獨成立SVN倉庫,位置層級上升為與各項目平級,為公司內各項目所共用,其結構見。

 

4.常見操作

 

4.1建立版本

當確定需要建立一個版本時,則需要在branches下建立一個相應的版本分支,用於版本實現過程中的配置項管理。分支的建立可以從頭建立也可以基於tags中的發行版本建立。例如,要在REL-1.1的基礎上開發2.0,則從tags\REL-1.1建立一個RB-2.0。

 

4.2日常工作

專案經理在給開發人員指派任務時必須制定版本號碼,即任務所屬版本。開發人員根據任務的版本號碼屬性在相應的工作分支中實現和提交工作成果物。這樣,開發人員只需要知道任務所屬版本號碼,無需關心版本之間的關係。專案經理需要對版本及其之間的關係有清晰的認識和規劃。

 

4.3版本發布

當一個版本進入待發布狀態後,需要為版本建立發布標籤,即從版本分支建立一個版本標籤。如2.0,則從branches\RB-2.0建立一個tags\REL-2.0。版本發布人員必須從tags下取發布項進行發布,杜絕發布人員從分支或者其他地方擷取發布項進行發布。

 

4.4版本修訂

當一個發行版本出現bug需要修訂時,需要從相應的發行版本中建立一個分支版本。例如2.0發布後出現bug,則從tags\REL-2.0建立一個branches\RB-2.0.1。注意,修訂編號必須增加,版本不能回退也不能原地變化,即不管是新功能還是bug修訂,只要是變更,版本號碼必增。帶修訂版本進入待發布狀態後,則進入版本發布流程。

 

4.5版本合并

當多個版本處於並行工作狀態下,例如RB-1.0.1(修複1.0發布後的bug)和RB-1.1(1.0發布後,在此基礎上增加的新功能)兩個版本並行工作,RB-1.0.1先於RB-1.1完成並發布, 那麼RB-1.0.1發布後會建立REL-1.0.1,需要將REL-1.0.1的修改合并到RB-1.1,否則會出現1.0.1修改過的bug在新版本1.1中又重新出現了。

使用SVN進行項目版本管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.