使用 TortoiseSVN 處理版本的分支與合併(二)

上一篇提過,主線和支線的版本可分頭進行,然後視需要將二者(或多個支線版本)合併。
這篇就是在介紹如何使用 TortoiseSVN 來處理主線與支線版本的合併(當然,支線之間也可以合併)。

合併

延續上一篇的例子,分支建立好之後,實際開發的過程可能類似這樣:
  1. 將工作目錄 MyProject\Web\HR 切換到某個分支,然後修改程式碼。改完之後 commmit 至檔案庫。
  2. 將工作目錄 MyProject\Web\HR 切回主線,修改程式碼。改完之後 commmit 至檔案庫。
  3. 前兩個步驟可能反覆數次,然後有一天,發現需要將分支合併至主線,此時請先確定工作目錄 MyProject\Web\HR 底下的修改都已經 commit,並且切換至主線。接著對此目錄點右鍵,選 TortoiseSVN > Merge。
TSVN 的 Merge 對話窗會先問你要用哪一種合併方式,這裡我們假設已開發完成一個功能分支(feature branch),欲將此分支的所有 revisions 整合到主線,因此選第二種:Reintegrate a branch。如下圖:


下一步, 選擇合併的來源 URL,亦即那個要合併至主線的分支的 URL:


下一步,設定合併選項,這裡都使用預設值。在真正進行合併前,最好先點「Test merge」鈕,測試看看能否合併。


Oops! 測試合併時果然出錯了:


它告訴我,本機工作目錄的檔案還沒 commit 至檔案庫,不可合併。這也是為什麼前面一直強調修改完分支或主線之後都要 commit 的緣故。

若合併成功,會看到如下畫面:


解決衝突

當然,實際不可能每次都這麼順利完成合併,因為各版本之間難免有衝突的情況,此時就得手動合併了。當 TSVN 在執行合併時發現版本衝突,會顯示對話窗讓你選擇處理方式:



我打算手動合併,因此選擇「Edit conflict」 ,接著會開啟 TortoiseMerge 視窗:


你可以從左右兩個面板當中找到衝突的程式碼,並利用滑鼠右鍵(或工具列按鈕)指定哪些區塊的程式碼要用左邊/右邊的版本。每做一次選擇,都可以從下方面板預覽合併的結果。所有衝突都解決後,儲存並關閉此視窗,回到上一個對話窗,點「Resolve」鈕即可。
Copyright © 2012. Huan-Lin 學習筆記 - All Rights Reserved
Powered by Blogger
Template Design by Cool Blogger Tutorials
Published by Templates Doctor