SVN版本控制——SVN merge 三種方式

引用:http://blog.csdn.net/han_dongwei/article/details/7754328


1、Merge a range of revisions

2、Reintegrate a branch

3、Merge two different trees


以下是轉載自chunanyong的一篇關於svn分支合併類型的文章,出處:http://chunanyong.iteye.com/blog/697255

合併的工作是把主幹或者分支上合併範圍內的所有改動列出,並對比當前工作副本的內容,由合併者手工修改衝突,然後提交到服務器的相應目錄裏。如果當前工作副本是主幹,則合併的範圍是分支上的改動,如果工作副本是分支的,則合併範圍是主幹上的改動,並且一定要注意,合併的起始位置URL一定要和當前的工作副本的URL是相同的。

 

一、合併一個範圍的版本

    此類型應用最爲廣泛,主要是把分支中的修改合併到主幹上來。在主幹上點擊右鍵選擇合併,然後選擇合併類型:合併一個範圍的版本。

合併的源URL填寫的是要合併的分支的URL,待合併的版本範圍如果爲空,則指的是合併分支上所有的版本,即自從分支創建以來到分支當前最新版本的所有演變。如果只是選擇其中一個版本,或者幾個版本,那麼就表示只是將制定的n個版本的變化合併到主幹上。如果只是選擇其中一個版本,那麼表示只是選擇那個版本的修改,之前或之後的修改將不被採納。

 

二、復興合併

    復興合並可以理解爲是第一種合併類型的一種特例,在復興合併中,主幹可以理解爲是自從開創分支之後沒有任何修改,而分支是經過修改的,而且合併中分支是沒有版本選擇的。經過復興合併,分支中所有的修改都會合併到主幹中,合併的結果將使得分支和主幹一模一樣,從而可以刪除分支。

 

三、合併兩個不同的樹

    此類型與前兩種類型不同,第一種類型可以選擇分支合併的版本,主幹不能選擇版本;第二種類型是主幹和分支都不能選擇合併的版本;而這種類型則是無論是主幹還是分支都可以選擇合併的版本,即可以選擇過去的一個主幹版本與分支的某個版本進行合併。合併的時候以選擇的分支版本爲主,如果選擇的主幹版本與分支版本有不同的地方,合併時主幹部分將被放棄。

起始URL:選擇主幹目錄的URL(應當和當前工作副本的URL一致,這個是所謂的合併點)

結束URL:選擇要合併的分支的URL。

起始和結束的版本:一般起始版本應當找到最後一次同步時的版本,如果從沒有同步過(第一次合併),則選擇創建分支時的版本,結束版本一般是最新版本,如果你不想將某些內容合併進主幹的話,也可以選擇一個合併點。

 

實例:

主幹A在95版本的時候創建分支B,此時兩棵樹都是95版本

1、我在分支B上增加文件test.txt,提交。此時版本庫升級到了96版本。

2、我在A上選擇合併類型1,合併分支最新版本,結果是把test.txt加入A

3、我在A上選擇合併類型2,合併分支最新版本,結果同上;

4、我在A上選擇合併類型3,合併分支最新版本,結果同上;

5、我在A上增加文件test2.txt,提交,此時版本庫升級到了97版本;

6、我在A上選擇合併類型1,合併分支最新版本,結果是把test.txt加入A;

7、我在A上選擇合併類型2,合併分支最新版本,結果是把test.txt加入A;

8、我在A上選擇合併類型3,主幹選擇當前97版本,合併分支最新版本,結果是把test.txt加入A,把test2.txt從A刪除。

9、我在A上選擇合併類型3,主幹97以前的版本,合併分支最新版本,結果是把test.txt加入A,而A中保留着test2.txt。

 

將分支合併到主幹上,首先需要在主幹的工作副本下進行,合併的範圍是從主幹的上次合併的版本開始到分支上最新的版本結束,如果是第一次合併,則從主幹創建分支的版本開始,所以每次合併要做好說明,在日誌中體現,不然忘記了下次再合併就有點麻煩。其實,應當儘量避免一個分支合併多次,分支的作用一般爲了解決bug,一旦bug對應結束了,分支的使命就結束了,以後再出現其他的問題,應當重新建立分支,這樣就不會出現多次合併的問題了。


還可以參考 http://blog.csdn.net/wjtxt/article/details/8623262

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章