SVN合并使用方法名師指導(dǎo)
本節(jié)向大家簡(jiǎn)單描述一下SVN合并(merge)的使用情況,主要包括分支的合并和多分支合并兩大部分內(nèi)容,和大家分享一下,希望通過(guò)本節(jié)的介紹大家對(duì)SVN合并有新的認(rèn)識(shí)。
SVN合并(merge)的使用
分支用來(lái)維護(hù)獨(dú)立的開(kāi)發(fā)支線,在一些階段,你可能需要將分支上的修改合并到最新版本,或者將最新版本的修改合并到分支。
此操作十分重要,在團(tuán)隊(duì)開(kāi)發(fā)中,如果你是SVN的維護(hù)者此環(huán)節(jié)可以說(shuō)是必不可少,因?yàn)閳F(tuán)隊(duì)開(kāi)發(fā)中如果使用了分支,那樣合并分支到主干、或者分支合并分支的操作是必須的。如果不使用分支,直接在主干上修改的話,主干版本可能會(huì)變得十分混亂。維護(hù)難度大大加大。
下面以使用TortoiseSVN為例,任何SVN的客戶端工具其實(shí)都大同小異。
一、SVN合并中分支的合并
點(diǎn)擊菜單上的合并按鈕,出現(xiàn)對(duì)應(yīng)的窗口,一般的使用第三個(gè)選項(xiàng)即可。點(diǎn)擊下一步。
注意填寫(xiě)起始和結(jié)束的URL及版本,尤其重要。這一步將影響你合并后所得的版本。
簡(jiǎn)單的說(shuō),“結(jié)束的URL和版本”是此次操作的最終標(biāo)準(zhǔn)。而“起始URL和版本”一般情況下必須是該分支創(chuàng)建的起始版本。
比方說(shuō),這次分支是從主干100上創(chuàng)建的,而分支的起始版本是101。最終分支完成后的版本是105。
簡(jiǎn)單情況下,主干上的版本沒(méi)有被更新,依然是100。如果想把分支功能合并到主干上的話,我們可以在主干100的工作副本中點(diǎn)擊合并,然后“起始URL和版本”填寫(xiě)主干的URL,版本100(或者HEAD,因?yàn)樽钚掳姹疽彩?00),然后“結(jié)束的URL和版本”填寫(xiě)分支的URL和版本105(也可以是HEAD)即可。
操作完成后,此次合并效果會(huì)在工作副本上呈現(xiàn),如果有問(wèn)題請(qǐng)使用還原,撤銷此次修改操作。
注:其他SVN的插件大同小異。
二、SVN合并中多分支合并
參考單分支的分支操作,而多分支的情況簡(jiǎn)單來(lái)說(shuō)有兩種:
分支中的起始版本一致
比方說(shuō)現(xiàn)在有兩個(gè)分支,分支A和分支B。他們分別從主干T創(chuàng)建分支。
主干T版本100,分支A的版本101,分支B的版本號(hào)102。
當(dāng)分支A和分支B都各自完成開(kāi)發(fā),并且提交到SVN上后。A的版本號(hào)為110,而B(niǎo)的版本號(hào)為115。
此時(shí)必須兩步操作,并且操作在主干T的工作副本內(nèi)執(zhí)行:
1)主干T合并分支A
起始URL和版本
主干T的URL、版本100
結(jié)束的URL和版本
分支A的URL、版本110
2)SVN合并分支A后再繼續(xù)合并分支B
起始URL和版本
主干T的URL、版本100
結(jié)束的URL和版本
分支B的URL、版本115
注意:完成第一步的時(shí)候不必提交。
分支中的起始版本不一致
比方說(shuō)現(xiàn)在有兩個(gè)分支,分支A和分支B。分支A是從主干T版本100上創(chuàng)建,分支A版本101。創(chuàng)建分支A后,主干上又做了其他修改,并且更新成版本102。
然后主干T版本102的基礎(chǔ)上創(chuàng)建分支B,分支B版本號(hào)為103。
兩個(gè)分支各自開(kāi)發(fā),最終分支A版本號(hào)為110,而分支B的版本號(hào)為120。
此時(shí)SVN合并操作應(yīng)該為三步,多的一步其實(shí)就是把起始版本統(tǒng)一:
1)分支A更新主干100-101的更新,在分支A的工作副本內(nèi)執(zhí)行。
起始URL和版本
主干T的URL、版本100
結(jié)束的URL和版本
主干T的URL、版本101
無(wú)誤后提交修改。分支A此時(shí)最終版本修改為121。
2)主干T合并分支A
起始URL和版本
主干T的URL、版本102
結(jié)束的URL和版本
分支A的URL、版本121
3)主干T合并分支B
起始URL和版本
主干T的URL、版本102
結(jié)束的URL和版本
分支B的URL、版本120
看起來(lái)比較繁瑣,其實(shí)最終目的還是把起始的版本統(tǒng)一,然后再把主干和分支上的差異修改添加到主干之上。本節(jié)有關(guān)SVN合并內(nèi)容介紹到這里。
【編輯推薦】
- 專家實(shí)例講解SVN分支和合并問(wèn)題
- 專家提醒:SVN合并時(shí)應(yīng)注意的關(guān)鍵問(wèn)題
- SVN分支和合并問(wèn)題專家在線講解
- SVN分支與合并實(shí)例剖析
- SVN分支與合并之專家課堂