天天看點

SVN的branch tag trunk的用法詳解

SVN開發中,trunk,tags,branchs使用的場景:

       當我們項目的某個版本開發結束後,比如1.0版本的開發結束之後,并且項目已經上線了,此時我們接到了新的需求,要增加一些新的功能,假設我們将正在開發新功能的版本定為2.0版本。當我們對新版本的開發已經進行了一段時間的時候,剛好碰到有很多客戶反映1.0版本存在bug,并且需要立馬解決問題并上線;這個時候我們該怎麼進行修改呢,是在正在增加新功能的2.0版本的基礎上修改嗎?答案肯定是否定的,因為新功能還沒開發完成,更沒有進行測試,怎麼可能立馬就可以上線;再次,如果修改bug的地方與新開發的功能涉及到同一處的代碼,并且産生了沖突該怎麼辦呢。是以最好的辦法就是我們對已經釋出的1.0版本進行修改。這樣的好處是:1、bug修複好了之後就可以立馬上線,不需要等到新功能開發測試完成才可以上線2、在原來版本上進行修複,可以避免對正在開發的新版本(2.0版本)産生影響,因為如果在新的版本上進行修改,可能會帶來新的bug。

下面是這一場景的執行流程:

SVN的branch tag trunk的用法詳解

1、開始一個項目(1.0版本) 項目名稱為:trunk_1.0

2、項目開發結束(1.0版本) 釋出新版本,将該版本複制到 tags中, 項目名稱為:tags_release_1.0

3、準備增加新功能(2.0版本)

4、開發2.0版本的過程中發現1.0版本有bug,将tags_release_1.0複制到branch中進行修複,項目名稱為:branch_fix_1.0

5、1.0版本修複完成,釋出新版本,将該版本複制到tags中,項目名稱為:tags_release_1.1

6、将branch中的branch_fix_1.0與trunk中正在開發的2.0版本進行合并(merge)。

注意:

1、開發2.0版本和修複1.0版本的bug的過程是兩個互不幹擾的過程,我們可以把他們看做兩個不同的項目,他們都可以由多人進行協同開發。

2、在進行同時進行2.0開發與1.0版本bug修複的時候,因為他們兩個是并行開發,為了保證trunk與branchs中的項目不會越走越遠,我們需要讓trunk與branchs時常能夠感覺對方,即branchs要時常和trunk保持同步,那如何保持branchs與trunk的同步呢,那就是merge(合并),沒錯就是合并,将trunk合并到branchs中。

參考資料:

SVN中trunk,branches,tags用法詳解

http://www.cnblogs.com/dafozhang/archive/2012/06/28/2567769.html

svn的merge使用例子

http://blog.csdn.net/keda8997110/article/details/21813035

SVN trunk(主線) branch(分支) tag(标記) 用法詳解和詳細操作步驟

http://blog.csdn.net/vbirdbest/article/details/51122637

繼續閱讀