1. 程式人生 > >關於SVN分支合併的實踐

關於SVN分支合併的實踐

最近搞一個公司不是很大的專案,這個專案最近需要預上線,然後svn的當前版本的專案暫時達到預上線標準,然後我又還想往專案新增新功能,為了不影響當前可上線的版本,我嘗試一下svn的分支合併(公司沒有使用svn分支的經驗,只能親身嘗試一下咯)。

首先,應該將當前版本全部提交到svn,保護好專案,即使接下來的操作有誤也不會影響到專案。

一 建立分支(branche)

將一個存在於svn的專案建立分支專案。我以一個test-demo作為示例。
在這裡插入圖片描述
選中專案右鍵–>team–>選擇分支/標記
在這裡插入圖片描述
注意一下

  1. 紅框的這個url 是分支的地址,意思就是你要將主幹專案copy到哪裡去,上例我將主幹專案copy到預建好的branches目錄下面。專案名+日期
  2. 這個url 可以手敲路徑或者瀏覽路徑

點選next
在這裡插入圖片描述
我們選擇第一項,然後點選next
在這裡插入圖片描述
輸入日誌描述,然後勾選切換到新分支,點finish,就完成了,在branches目錄下建立了一個跟主幹專案完全一樣的。
在這裡插入圖片描述

二 合併主幹到分支

按照我當前這個專案,只有我一個人開發,其實是不需要的這個步驟。那為什麼會有合併主幹到分支這一步驟呢?
假設有兩個開發人員,甲負責專案的bug修改、程式碼優化、增刪檔案等,乙(就是我)在分支埋頭幹了半個月,然後同步到主幹專案時候發現,擦咧,什麼鬼,基於xxx.java開發的類沒有了?某個介面不能使用了?會出現假設的問題,所以我們在主幹跟分支並行開發的時候,分支需要經常跟主幹同步。
在這裡插入圖片描述


我在trunk專案作了兩個改動, 修改了HelloController.java,以及新增了Hello2Controller.java,然後提交到svn。

選中branche專案右鍵–>team–>選擇合併(merger)
在這裡插入圖片描述
選擇第一項,合併某個範圍的版本,點next
在這裡插入圖片描述
url選擇的是trunk專案的路徑,下方有兩個選項,第二個箭頭是可以選擇某個提交的版本作為同步,看下圖,選擇完修訂版,next,或者可以直接點選finish。
在這裡插入圖片描述

我選的是第一項,同步所有修訂版本,點選next
在這裡插入圖片描述
是一些發生衝突情況的選擇項,我選擇預設選項,點選finish。
在這裡插入圖片描述
最後可以看到update了一個檔案,add了一個檔案。

三 合併分支到主幹

branche專案經過一段時間開發、測試之後,我們就需要合併回trunk。

在這裡插入圖片描述
在本例的branche專案,我把Hello2Controller.java刪掉了,新增了Hello3Controller.java。
其實步驟跟上面大同小異,但是這裡要注意的是,merge的時候,是以trunk專案來操作。url換成是branche專案的路徑。

四 分支和主幹專案之間的切換

選中專案右鍵–>team–>選擇切換(switch)
更換一下url,直接finish,就完成切換了。
在這裡插入圖片描述

文章到這裡其實就結束了,第一次釋出文章,可能存在很多的不足,但是就是要記錄一下。