SVN建立分支主幹策略

本篇目錄

前言

使用svn作爲源碼管理工具已有幾年,但一直都只是使用到了trunk。最近項目中發版本每次都會將一個版本的文件拷貝打包爲rar壓縮文件,下個版本迭代則從新在svn服務端建立新的Repository用於管理。顯然這tag版本脫離了svn的管理,日誌記錄也會發生斷層。

因而最近就查閱了一些文章,結合實際對 trunk、tags、branches 進行體驗操做,有點收穫,怕之後忘了,故作此記錄。

 

SVN分支管理策略

其中

Trunk:主開發分支,全部最新的代碼都在這裏。

Tags:一個里程碑版本,通常均可保證直接上線(名字:」V1.0」,」V1.1」,」V2.1」,」School_V1.0」,」School_V1.1」…),用於存放發佈的版本。

Hotfix branch:修正bug的分支(名字:」hotfix_V1.x」,」 School_hotfix_V1.x」, 「School_hotfix_V1.x」),從須要修復的tag拉出分支,用於解決已上線版本的bug。

Customize branch:定製化需求的開發分支(名字:」School_Develop」…),用於定製化需求開發一個版本。

VisualSVN Server

服務端採用VisualSVN Server是免費的,而客戶端VisualSvn是收費的,可以使用免費AnkhSvn替代集成至Visual Studio使用。VisualSVN Server的下載地址:https://www.visualsvn.com/server/download/,VisualSVN Server的安裝使用網上有不少文章,此處不作描述。

TortoiseSVN客戶端

Repository的建立


Check out

首先Checkout在服務端repository建立的Test,默認建立了三個空文件夾。

trunk建立新項目MyProject

trunk更新提交更新,迭代版本建立Tag V1.0

提交迭代版本更新。

基於trunk中最新版本建立Tag_V1.0。在/trunk/MyProject目錄上右鍵,依次選擇"TortoiseSVN" -> "Branch/tag...",在彈出窗口的"To path"中填入tag的地址。

提交後在文件夾更新後會在Test\tags文件夾下出現MyPro_V1.0文件夾,tags目錄下的MyPro_V1.0文件夾就是以trunk中指定的版本拷貝的副本作爲版本V1.0進行的封存。

基於Tag的Hotfix Branch

當版本V1.0發佈上線後,出現線上bug後須要修復,則以Tag中MyPro_V1.0建立Hotfix Branch(步驟和建立Tag相似),在Hotfix的分支中修復問題。修復完成後須要將這次的改動Marge(合併)到trunk中同時創Tag_V1.1進行發佈。

提交後在文件夾更新後會在Test\branches文件夾下出現bugfix_by_account文件夾,在此基礎上修復問題並提交。

在/branches/bugfix_by_account目錄上右鍵,依次選擇"TortoiseSVN" ->"Revision graph",在彈出的窗口中能夠看到版本分支圖。


 

Hotfix Branch改動Marge(合併)到trunk中同時創Tag_V1.1進行發佈

在/trunk/MyProject目錄上右鍵,依次選擇"TortoiseSVN" ->"Merge...",

點Next出現以下窗口,

若是trunk中的版本修改過的文件與Hotfix分支中的修改不重合則不會產生衝突。下圖是trunk進行過版本提交,與Hotfix分支中的修改產生衝突。

點擊 Edit Confict解決衝突。

衝突處理完後點擊Resolved,衝突解決完成本地trunk中已包含Hotfix分支的內容,合併後須要提交至svn服務器。

Hotfix分支修復完成後建立Tag_V1.1與以前trunk建立Tag_V1.0相似。

完成以上動做後的版本分支圖以下。

定製化分支Customize branch

定製化分支使用的方式和以前建立branch方式相似,在此不作贅述。

總結

合併發生在本地working copy,只要你不提交就不會影響到repository。

合併前必定要先update、commit,保證不會out of day,並將本地的修改保存到repository。

使用svn建立的分支都會在指定的文件夾中建立副本,若是是在不一樣的分支文件夾中開發時候須要從新對項目配置(eg:IIS外部主機),也可在trunk中切換分支則不用修改配置,可是svn服務端須要保持可鏈接狀態。

最後說一句用過git以後,不再想用其它[源代碼]管理器。

相關文章
相關標籤/搜索