新聞中心
本節(jié)作一下SVN分支與合并透析,主要有創(chuàng)建SVN分支的意義,原理和方法,以及分支主干合并之間的轉(zhuǎn)換等內(nèi)容,希望通過本文的介紹大家能夠掌握SVN分支與合并方面的知識。

我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、土默特左旗ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的土默特左旗網(wǎng)站制作公司
SVN分支
1.創(chuàng)建分支的意義
創(chuàng)建分支的意義,比如我們在一個基礎(chǔ)平臺上進行開發(fā),每個技術(shù)小組負(fù)責(zé)一個子項目,而基礎(chǔ)平臺也是有可能會繼續(xù)更改的,這個時候,如果不創(chuàng)建分支,子項目之間會相互影響,影響***的就是后期的測試和版本發(fā)布,子項目A已經(jīng)結(jié)束,但測試卻受到正在進行的子項目B的影響,測試通不過,就別說版本發(fā)布了。所以,我們需要從目前的項目(主干trunk)中創(chuàng)建分支(branch),隔離子項目間的相互影響。知道了創(chuàng)建分支的意義,那么如何創(chuàng)建呢,下面請看SVN分支與合并介紹中創(chuàng)建的原理。
2.svn創(chuàng)建分支原理
在svn中,創(chuàng)建分支,實際上就是一個版本拷貝(對應(yīng)copyto...注意:絕不是簡單在客戶端上copy一個目錄,而是svn倉庫中copy,文件版本號會增加。),兩邊做任何修改發(fā)生的版本變化,是一套機制。舉例:目前主干版本是100,分支版本是101,主干中增加一個文件,版本為102,分支中再增加一個文件,版本就為103了。兩邊的版本號是一套,不會重復(fù)。
3.svn創(chuàng)建分支的方法
TortoiseSVN:右鍵點擊工程目錄->TortoiseSVN->Branch/tag..菜單,F(xiàn)romWCatUrl自動為工程svnurl,比如https://localhost:8443/svn/fbysss/prj1,toUrl填寫https://localhost:8443/svn/fbysss/prj1/branches/branch1。點OK按鈕,分支就創(chuàng)建好了。
Subclipse:Team->Branch/tag..,跟上面類似.
SVN命令模式:svncopytrunk_pathbranch_path-m'描述'
舉例:svnhttps://localhost:8443/svn/fbysss/prj1https://localhost:8443/svn/fbysss/prj1/branches/branch1-m"***個分支"。
4.SVN分支與合并
1)從分支合并到主干
分支開發(fā)結(jié)束之后,往往需要合并回主干去測試、發(fā)布,但分支和主干可能有很多沖突的地方,在合并時經(jīng)常需要手工解決。
被操作對象:主干
From:主干的打出分支時的版本
To:分支的Head版本(***版本)
怎么理解這個From和To呢?似乎跟我們的想當(dāng)然不太一樣:因為我們理解,把分支合并到主干,肯定是From分支,To主干。怎么搞反了呢?
實際上,Svn認(rèn)為,我們要合并的,是從主干的某個版本開始,到分支的某個版本結(jié)束。兩邊的版本號實際上是一套系統(tǒng),不會有重復(fù)。我們從TortoiseSVNHelp中也能找到證據(jù):
- viewplaincopytoclipboardprint?
- Ifyouareusingthismethodtomergeafeaturebranchbacktotrunk,
- youneedto........
- IntheFrom:fieldenterthefullfolderURLofthetrunk.
- Thismaysoundwrong,
- butrememberthatthetrunkisthestartpointtowhichyouwanttoaddthebranchchanges.Youmayalsoclick...tobrowsetherepository.
- IntheTo:fieldenterthefullfolderURLofthefeaturebranch.
- Ifyouareusingthismethodtomergeafeaturebranchbacktotrunk,
- youneedto........
- IntheFrom:fieldenterthefullfolderURLofthetrunk.
- Thismaysoundwrong,butrememberthatthetrunkisthestartpointtowhichyouwanttoaddthebranchchanges.
- Youmayalsoclick...tobrowsetherepository.
- IntheTo:fieldenterthefullfolderURLofthefeaturebranch.
2)從主干合并到分支
試想這樣的情況:一個項目里面,要獨立出來一個子項目,需要單獨發(fā)布版本,用到了基礎(chǔ)框架代碼,而基礎(chǔ)框架在主干中不斷修改完善,這就需要從主干合并到分支。
被操作對象:分支
From:分支的***個版本(最舊版本)
To:主干的Head版本(***版本)
相當(dāng)于從分支的***個版本開始一直到主干***一個版本結(jié)束合并之后,替換分支。實際上,分支和主干,在管理上是有較大的意義不同,但對于svn系統(tǒng)技術(shù)層面來講,二者是平等的,可互為主干和分支。本節(jié)關(guān)于SVN分支與合并問題介紹完畢,請關(guān)注本節(jié)其他相關(guān)報道。
名稱欄目:學(xué)習(xí)筆記SVN分支與合并問題詳解
URL網(wǎng)址:http://m.fisionsoft.com.cn/article/dhppgcg.html


咨詢
建站咨詢
