SVN版本控制—branches、trunk、tag篇

 新建資源倉庫時,可選擇默認建立三個文件夾。這三個文件夾分別是【trunk】【branches】【tags】mysql

 

【Trunk】git

     通常用於存放目前項目主線,也就是項目全部功能模塊的集合體,一整個項目全部代碼庫。通常來講,存放在trunk中的代碼都是穩定可正常運行的。sql

【Branches】數據庫

     分支,其實也就是主線的拷貝,主要應用於在項目須要有新的開發時,不針對主線進行,而是在主線的基礎上,拷貝一份或者多份。針對每一個模塊小組,都可根據本身的開發狀況,建立本身的分支進行開發,最後將分支一塊兒合併到trunk上來,從而最後合併爲一個項目。svn

     分支存在的意義就在於保證主線穩定版代碼和新需求開發版代碼的間的獨立。目前在svn的使用上,最大的問題就是沒有創建各自項目組的分支,全部模塊均集中對trunk中主線進行操做。就像測試時直接操做生產數據庫同樣可怕,由於木有備份,出問題了恢復就比較麻煩。測試

【Tags】 .net

     標記是主線中一個特定版本的定型版。好比一個系統1.0開發完成,就會將主線的代碼打一個tag,標記1.0開發完成。因此Tags中的代碼只讀的,也就是tags中的版本是不容許再動了。版本控制

下面就實際演示版本控制具體操做。資源

如何建立分支?

一、選擇trunk中須要建立分支的主線文件夾,右擊以下,選擇Branch/tag: 開發

二、選擇分支建立路徑到branches文件夾下,版本號爲當前最新版本 

 三、分支建立完畢,then新功能的開發即可從新定位到分支URL進行代碼的更新提交而不對主線形成任何改動。 

四、最後還可經過版本分支圖查看各個版本分支記錄,定位分支從哪一版本分出去的,當前只作了一個分支,以下: 

如何建立tag?

建立tag和分支的流程徹底一致,惟一不一樣的即是填寫不一樣的URL路徑

建立成功後,查看服務端倉庫,Tag 創建完成以下圖:

 

如何將分支合併到主線?

一、右擊須要合併的文件,選擇merge 

選擇合併類型:

 

 

【merge a range of revisions】——N to one

     適用於新功能開發即有在分支中進行,又有在主線中進行,將某個分支或主線上提交的多個版本間的變化合併到另一個分支上。

     "Revision range to merge"就是你要將trunk的哪一個版本所作的變化合併到branch中,能夠是某一連串的revision,好比 4-7,15-HEAD,也能夠是某個單獨的某版本號。

【Reintegrate a branch】——One to One

     適用於在分支中開發新功能,分支開發結束後將全部的改動合併回主線上。

在這裏,"From URL"選擇/branches/MyProject,無需選擇版本號,Reintegrate會將branch上全部修改合併到 trunk。branch將成功合併到trunk,你須要作的只是將合併後的trunk當即 commit!若是新加的功能已經開發完成了,你能夠選擇在合併後刪除相關分支。 

    當選擇將分支合併到主線上【merge a range of revisions】,結果以下圖:

最後將branches中代碼提交便可。

總結:

     SVN經過對三個文件的操做,主要目的還在於對歷史版本的備份,三個版本相互獨立,trunk負責保存當前穩定版本;branches 負責保持你分支版本,進行新需求開發;tags則保存最終發佈上線版本,因此不可再修改。各司其職,各盡其責,使得開發過程當中版本控制有條不紊,幾十我的的合做開發也不成問題。

相關文章
相關標籤/搜索