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


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

 

【Trunk】

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

【Branches】

     分支,其實也就是主線的拷貝,主要應用於在項目需要有新的開發時,不針對主線進行,而是在主線的基礎上,拷貝一份或者多份。針對每個模塊小組,均可根據自己的開發情況,創建自己的分支進行開發,最后將分支一起合並到trunk上來,從而最后合並為一個項目。

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

【Tags】 

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

下面就實際演示版本控制具體操作。

如何創建分支?

1、選擇trunk中需要創建分支的主線文件夾,右擊如下,選擇Branch/tag: 

2、選擇分支創建路徑到branches文件夾下,版本號為當前最新版本 

 3、分支創建完畢,then新功能的開發便可重新定位到分支URL進行代碼的更新提交而不對主線造成任何改動。 

4、最后還可通過版本分支圖查看各個版本分支記錄,定位分支從哪一版本分出去的,當前只做了一個分支,如下: 

如何創建tag?

創建tag和分支的流程完全一致,唯一不同的便是填寫不同的URL路徑

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

 

如何將分支合並到主線?

1、右擊需要合並的文件,選擇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則保存最終發布上線版本,所以不可再修改。各司其職,各盡其責,使得開發過程中版本控制有條不紊,幾十個人的合作開發也不成問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM