SVN合并使用方法名師指導
本節向大家簡單描述一下SVN合并(merge)的使用情況,主要包括分支的合并和多分支合并兩大部分內容,和大家分享一下,希望通過本節的介紹大家對SVN合并有新的認識。
SVN合并(merge)的使用
分支用來維護獨立的開發支線,在一些階段,你可能需要將分支上的修改合并到最新版本,或者將最新版本的修改合并到分支。
此操作十分重要,在團隊開發中,如果你是SVN的維護者此環節可以說是必不可少,因為團隊開發中如果使用了分支,那樣合并分支到主干、或者分支合并分支的操作是必須的。如果不使用分支,直接在主干上修改的話,主干版本可能會變得十分混亂。維護難度大大加大。
下面以使用TortoiseSVN為例,任何SVN的客戶端工具其實都大同小異。
一、SVN合并中分支的合并
點擊菜單上的合并按鈕,出現對應的窗口,一般的使用第三個選項即可。點擊下一步。
注意填寫起始和結束的URL及版本,尤其重要。這一步將影響你合并后所得的版本。
簡單的說,“結束的URL和版本”是此次操作的最終標準。而“起始URL和版本”一般情況下必須是該分支創建的起始版本。
比方說,這次分支是從主干100上創建的,而分支的起始版本是101。最終分支完成后的版本是105。
簡單情況下,主干上的版本沒有被更新,依然是100。如果想把分支功能合并到主干上的話,我們可以在主干100的工作副本中點擊合并,然后“起始URL和版本”填寫主干的URL,版本100(或者HEAD,因為最新版本也是100),然后“結束的URL和版本”填寫分支的URL和版本105(也可以是HEAD)即可。
操作完成后,此次合并效果會在工作副本上呈現,如果有問題請使用還原,撤銷此次修改操作。
注:其他SVN的插件大同小異。
二、SVN合并中多分支合并
參考單分支的分支操作,而多分支的情況簡單來說有兩種:
分支中的起始版本一致
比方說現在有兩個分支,分支A和分支B。他們分別從主干T創建分支。
主干T版本100,分支A的版本101,分支B的版本號102。
當分支A和分支B都各自完成開發,并且提交到SVN上后。A的版本號為110,而B的版本號為115。
此時必須兩步操作,并且操作在主干T的工作副本內執行:
1)主干T合并分支A
起始URL和版本
主干T的URL、版本100
結束的URL和版本
分支A的URL、版本110
2)SVN合并分支A后再繼續合并分支B
起始URL和版本
主干T的URL、版本100
結束的URL和版本
分支B的URL、版本115
注意:完成第一步的時候不必提交。
分支中的起始版本不一致
比方說現在有兩個分支,分支A和分支B。分支A是從主干T版本100上創建,分支A版本101。創建分支A后,主干上又做了其他修改,并且更新成版本102。
然后主干T版本102的基礎上創建分支B,分支B版本號為103。
兩個分支各自開發,最終分支A版本號為110,而分支B的版本號為120。
此時SVN合并操作應該為三步,多的一步其實就是把起始版本統一:
1)分支A更新主干100-101的更新,在分支A的工作副本內執行。
起始URL和版本
主干T的URL、版本100
結束的URL和版本
主干T的URL、版本101
無誤后提交修改。分支A此時最終版本修改為121。
2)主干T合并分支A
起始URL和版本
主干T的URL、版本102
結束的URL和版本
分支A的URL、版本121
3)主干T合并分支B
起始URL和版本
主干T的URL、版本102
結束的URL和版本
分支B的URL、版本120
看起來比較繁瑣,其實最終目的還是把起始的版本統一,然后再把主干和分支上的差異修改添加到主干之上。本節有關SVN合并內容介紹到這里。
【編輯推薦】