1. 程式人生 > >SVN版本控制——主線、分支、標記篇

SVN版本控制——主線、分支、標記篇

   新建資源倉庫時,可選擇預設建立三個資料夾。這三個資料夾分別是【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則儲存最終釋出上線版本,所以不可再修改。各司其職,各盡其責,使得開發過程中版本控制有條不紊,幾十個人的合作開發也不成問題。
---------------------
作者:鍾艾伶
來源:CSDN
原文:https://blog.csdn.net/Daybreak1209/article/details/50380504
版權宣告:本文為博主原創文章,轉載請附上博文連結!