天天看點

使用IntelliJ IDEA合并SVN代碼

前言:項目中難免遇到多個分支開發,或者主幹與分支并行開發的問題,是以在一定的階段之後需要将代碼合并。本文主要講述最簡單的主幹與分支代碼互相合并問題,其實分支與分支合并也可以類比操作。主要講解在idea中操作和直接利用小烏龜操作的兩種方式。

一、使用小烏龜的方式

1.1從主幹合并到分支

1在本地trunk中先update一下,有沖突的解決沖突,保證trunk和repository已經完全同步,

2.在/branches /MyProject上右鍵,依次選擇”TortoiseSVN” -> “Merge…”,

3.在彈出的視窗中選擇第一項”Merge a range of revision”,這個類型的

Merge适用于将某個分支或主線上送出的多個revision間的變化合并到另外一個分支上。

使用IntelliJ IDEA合并SVN代碼

4.點選next

使用IntelliJ IDEA合并SVN代碼

這裡的”URL to merge from”應該填trunk的路徑,了解為 “從主幹合并“ 到分支,”Revision range to merge”就是要将trunk的哪些revision所對應的變化合并到branch中

5.點選next:

使用IntelliJ IDEA合并SVN代碼

在這裡隻需保留預設設定即可。

在點選Merge按鈕前你可以先Test merge一下,進行測試。

點選Merge按鈕後trunk所做的修改将同步到branch中。

至此,branch 已經完全和 trunk 同步,合并發生在本地 working copy,隻要你不送出就不會影響到 repository。

是以我們和合并操作後,處理好沖突(如果存在沖突)後,将代碼送出到 repository。

1.2從分支合并到主幹

和 “主幹合并到分支”基本 一樣,需要注意第2步和第4步

2.在/trunk/MyProject上右鍵(注意是在主線的目錄上右鍵),依次選擇”TortoiseSVN” -> “Merge…”。

4.這裡的”URL to merge from”應該填分支的路徑

二、使用idea的方式

2.1 從分支合并到主幹

1.将項目切換到主幹上,并把代碼更新到最新,保證本地與SVN主幹,完全一緻。然後在IDEA的上方菜單中,依次選擇VCS --> Integrate Project…如圖所示。也可以在項目上點右鍵,在彈出的菜單中選擇Subversion -> Integrate Directory…,

使用IntelliJ IDEA合并SVN代碼

2.在Integrate Project界面,在Source 1中選擇主幹的SVN位址,并選擇當時分支分支時的版本号,本例是4909(注意:如果這裡選擇HEAD,那麼分支的代碼将會把本地代碼覆寫掉,不會儲存主幹修改過的代碼,慎重!!!);在Source2中選擇分支的位址,并在版本号處選擇HEAD,表示把分支最新代碼合并。然後在Try merge, but make no changes選項中打勾,在Depth中選擇working copy。這樣的配置是将分支最新代碼與主幹分出分支時的代碼進行嘗試比較。最後點“OK”,開始嘗試合并,在下方會顯示合并的結果,如圖所示,檢查合并結果是否正常正确。

使用IntelliJ IDEA合并SVN代碼

3.當确認嘗試合并無問題後,再次重複上述合并步驟的界面,但在Try merge, but make no changes選項中取消打勾,然後點選“OK”,開始合并。

使用IntelliJ IDEA合并SVN代碼

4.當合并代碼過程中出現檔案沖突時,會彈出一個沖突清單。此時需要對沖突的檔案進行一個個合并。選擇一個沖突的檔案,單擊“Merge…”,在彈出的合并視窗中,會展示三個檔案,左邊是本地代碼,中間是合并後的代碼,右邊是分支上的代碼。IDEA已經将沖突的代碼塊标志出來,你隻需要将左邊和右邊的代碼往中間合并,然後檢視中間的代碼是否正确,若不正确,直接修改正确,最後點選下方的“Apply”,完成該檔案的合并。

使用IntelliJ IDEA合并SVN代碼

5.合并動作完成後,在下方工具視窗“Version Control”–> Local Changes 标簽頁看到合并後的本地代碼變更,可以選擇其中的某個檔案,然後按快捷鍵Ctrl+D或點左側工具圖示,檢視檔案的改動情況,在彈出的視窗左側為合并之前的代碼,右側是合并之後的代碼。

使用IntelliJ IDEA合并SVN代碼

6.在确認修改的檔案無誤後,在“Version Control”–> Local Changes 标簽頁,在檔案根檔案夾“Default"上,單擊右鍵,在彈出的菜單中,選擇"Commit Changes"送出代碼,在彈出的确認視窗中,會再次顯示所有要6.送出的檔案,會在檔案複選項上打勾,在下方的Commit Message中填寫上本次送出内容的描述資訊。最後點選”Commit“,送出代碼到SVN,如圖所示。至此合并分到主幹完成。

使用IntelliJ IDEA合并SVN代碼
使用IntelliJ IDEA合并SVN代碼

2.2 從主幹合并到分支

與“分支合并到主幹”類似,隻不過在第2步位址不一樣(同樣注意,分支的版本不能直接選HEAD,否則分支修改過的代碼會被覆寫)

三、注意事項

1.當大批量的進行合并時(很長時間沒有合并了,900多個檔案),使用eclipse或者idea可能會報錯,具體原因未知,建議使用小烏龜的方式。

2.在合并前一定要保證本地的代碼與倉庫的代碼,**一緻,一緻!一緻!要一緻!**重要的事情說三遍!例如從分支合并到主幹,需要先把本地代碼更新到與svn一模一樣,期間不可再有人有送出操作。