1. 程式人生 > >SVN中trunk、branch、tag區別

SVN中trunk、branch、tag區別

 雖然一直都在用svn作專案管理,但是一直都是傻傻的分不清主幹、分支。今天小編就來詳細介紹一下:

【branch】

分支:版本控制系統的一個特性就是能夠把各種修改分離出來放在開發品的一個分割線上。這條線就被稱為分支。分支經常被用來實驗新的特性,而不會對開發有編譯錯誤的干擾。當新的特性足夠穩定之後,開發品的分支就可以混合回主幹線上。

按照Subversion的說法,一個branch就是主幹專案的一個拷貝,如下圖所示:


每一個trunk下面的專案都有好多分支。因為開發團隊中的成員有多個,每個成員為了保證工作的團隊效果,同時又不影響其他同時的開發以及線上的專案,需要在自己的分支上進行程式碼操作,並不斷地提交自己的修改,從而使得每一次修改在repository中都有記錄。簡單說來,branch存在的意義在於,在不干擾trunk的情況下,和trunk並行開發,等到開發結束以後合併回trunk中。

假設一個這樣的場景:

專案組長分配了一個開發新功能(新增支付寶支付方式)的任務給小馮,於此同時小董正在做一個使用銀行卡支付的功能。這兩個功能有很多公用的js和css等。這個時候,如果小馮不建立自己的分支,而是直接在主幹專案上進行開發提交,就會直接影響到小董正在進行的專案的效果,這兩個人就會陷入無限的版本衝突或恢復版本的死迴圈中,兩個人本來關係還不錯,但是還可以會因為給彼此造成的不良影響而影響同事之間的關係等等。。。

從而,可以通過分支開發,每個人都在自己的分支上進行功能的開發測試。就會省卻好多不必要的衝突問題。等到開發完成之後,再將最終程式碼合併到主幹專案中去。我想這才是SVN設定分支、主幹的意義所在。

那麼,如何建立自己的分支並進行合併分支的操作呢?

第一步,需要檢視一下專案中是否有trunk、brunches、tag這三個基本的資料夾:


第二步,需要在brunches資料夾中新建自己的分支:


第三步,在自己的分支資料夾中copy一份主幹中需要自己負責的程式碼:


完成了這三步,就可以在分支上開發自己的專案了。

第四步,待專案完成之後,需要合併分支到主幹上。


進入到CollabNet Merge設定介面,一路next,



更新完成之後,點選next,進入下一步:


然後點選Finish就完成了合併分支到主幹啦。

【trunk】

主幹,作為開發主目錄。一般存放的是當前最新最穩定的程式碼以及其他專案資料。每個專案通常只有一個主幹。

我們在分支上將程式開發完成並通過測試後,需要將其合併到主幹上面。

那麼,如何合併主幹呢?

第一步,需要下載一份trunk上的程式碼,然後在需要合併到主幹上的專案上右擊Merge並進入:


一路next,然後進入


下一步,點選Merge


然後,會彈出提示:


至此,就完成了合併主幹啦。

【tag】

tag,字面意思是圖示,在SVN裡面也是做標記的意思。舉個最簡單的例子。咱們所做的專案不可能只是一個版本,很多情況下會是版本不斷迭代更新的。從V1.0到V2.0、V3.0等。這個時候就可以使用tag做版本的標記了。 具體打tag的方式就是,將目前最新版最穩定版本的程式碼及其他資料,全部備份到tag資料夾中,並做好版本記錄。
【學習小結】 通過這次的SVN實踐,對裡面的主幹、分支以及打tag有了清楚的認識。真是實踐出真知。大家也快嘗試一下吧。