SVN合并(merge)的使用
?
原文 http://blog.csdn.net/kennylee26/archive/2009/08/28/4494704.aspx
?
?分支用來維護獨立的開發支線,在一些階段,你可能需要將分支上的修改合并到最新版本,或者將最新版本的修改合并到分支。
?
??????? 此操作十分重要,在團隊開發中,如果你是SVN 的維護者此環節可以說是必不可少,因為團隊開發中如果使用了分支,那樣合并分支到主干、或者分支合并分支的操作是必須的。
?
??????? 如果不使用分支,直接在主干上修改的話,主干版本可能會變得十分混亂。維護難度大大加大。
?
???? 下面以使用TortoiseSVN為例,任何SVN的客戶端工具其實都大同小異。
?
?
一、分支的合并
?
?
?
?
點擊菜單上的合并按鈕,出現如圖窗口,一般的使用第三個選項即可。如圖所視。
點擊下一步
?
?
?
?
注意填寫起始和結束的URL 及版本,尤其重要。這一步將影響你合并后所得的版本。
?
簡單的說,“結束的URL 和版本”是此次操作的最終標準。而“起始URL 和版本”一般情況下必須是該分支創建的起始版本。
?
比方說,這次分支是從主干100 上創建的,而分支的起始版本是101 。最終分支完成后的版本是105 。
簡單情況下,主干上的版本沒有被更新,依然是100 。如果想把分支功能合并到主干上的話,我們可以在主干100 的工作副本中點擊合并,然后“起始URL 和版本”填寫主干的URL ,版本100( 或者HEAD ,因為最新版本也是100) ,然后“結束的URL 和版本”填寫分支的URL 和版本105( 也可以是HEAD) 即可。
?
操作完成后,此次合并效果會在工作副本上呈現,如果有問題請使用還原,撤銷此次修改操作。
?
注:其他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)???? 合并分支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 。
?
?
?
此時合并操作應該為三步,多的一步其實就是把起始版本統一:
?
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
?
看起來比較繁瑣,其實最終目的還是把起始的版本統一,然后再把主干和分支上的差異修改添加到主干之上。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/kennylee26/archive/2009/08/28/4494704.aspx
?
轉載于:https://www.cnblogs.com/meetrice/archive/2009/09/14/1566398.html
總結
以上是生活随笔為你收集整理的SVN合并(merge)的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET framework Libra
- 下一篇: www.javaei.com网站建设手记