1. 程式人生 > >eclipse svn 分支合併

eclipse svn 分支合併

首先需釐清SVN的分支以下幾個概念:

trunk: 主幹(可以理解為開發環境的程式碼,平常做開發的工作目錄)

branches:從主幹拷貝了一份程式碼重新在svn伺服器上的建了個分支目錄(通常叫branch,一般與生產上的程式碼保持同步)

tag:主幹版本標記(標識每次大的升級版本號)。

 我們專案目前的版本管理策略如下(可以根據自已的專案實際需要建立不同的版本管理策略):

1、系統在沒有上線之前,只有一個主幹(trunk),所有開發人員在主幹上進行協同開發。

2、系統上線之後,在主幹的基礎上建立一個分支,該分支上主要用於修復生產環境的BUG,或者緊急新功能上線。主幹仍然進行新功能模組的開發。

3、每次生產環境的升級,都從分支上進行打包部署。升級完之後需將分支上改動的程式碼及時合併到主幹上(開發人員常常忘記,切記)。

4、新功能在主幹上開發好了,需要進行一次大的升級,可以先將主幹打上一個TAG做為大版本號,並且同時在此基礎上建立一個對應的分支,然後切換到分支上進行打包部署,這個版本的生產程式碼維護也在分支上。

原則:分支用於生產程式碼維護,主幹用於平時開發,TAG用於主幹大版本的標記。

由於我們專案由好幾個子系統構成一個大的集群系統,系統之間的版本統一就顯得很重要。所以每次上線,即使相關子系統沒有程式碼改動,也需要重新建立一個分支版本以適應其它子系統的版本改動。

說了這麼多之後,來說下具體分支合併到主幹上的操作,因為這部分最容易出錯:

合併根據目標不同分為2種:

1、分支合併到主幹:主要用在修復完生產BUG,並上線之後。需把改動的程式碼合併到主幹上。

2、主幹合併到分支:公用的邏輯改動,需反映到所有並行的分支上。

注意:合併是要在目標目錄上進行操作的,如:分支合併到主幹(主幹為目標),需切換到主幹上操作合併功能,主幹合併到分支(分支為目標),需切換到分支上進行操作。

分支合併到主幹的具體步驟:

1、主幹目錄右鍵選擇合併

 出現以上6個合併選項,

第一個選項:合併指定的版本,可以是從分支合併到主幹,也可以是主幹合併的版本,主要作用把分支的部份修改合併到主幹上。

第二個選項:復興分支,這裡會把分支上所有的需改都合併到主幹上。如果只想合併修改的一部分,並適合這項。

第三個選項:將主幹上的修改合併到分支。

第四個選項:2個不同的分支合併,但其實也可以是分支和主幹的合併,只要from選擇為主幹就行。

通常選擇第一項或第四項進行操作,這裡需要注意的是:

這裡其實就是比對TO版本和FROM版本的差異,並把差異合併到TO的當前版本(head版本)中去。

注:如果要把分支所有的修改合併到主幹上,FROM需要選擇主幹建立見分支時的版本號,TO選擇分支最新版本(head版本)就行了。

      如果FROM也選擇主幹head版本,TO也選擇head版本,就會把所有分支與主幹不同的差異覆蓋到當前主幹上來。造成主幹的檔案被分支覆蓋。

合併當中出現:

no uncommited modified :表示當前版本還有沒有提交的檔案,如果不需要提交就選擇revert.

working copy at a single version:表示當前目錄沒有從SVN伺服器更新最新的版本。update下後在操作就行了。

很久沒有寫這麼長的文章了,希望對大家有幫助。