使用 TortoiseSVN 進行分支開發與合併的標準流程,含建立分支、平行開發模擬、合併衝突解決與最佳實務。
建立分支
- 在
trunk 目錄右鍵 → TortoiseSVN → Branch/Tag...
- To path 填入
/branches/feature-x。
- 選擇 HEAD revision in the repository(以最新 trunk 建立分支)。
- 按 OK,伺服器端以低成本複製完成(僅記錄參考,非實體複製)。
- 回到
branches 目錄執行 Update 取得分支工作副本。
平行開發模擬
- 分支修改
A.java:新增功能 X。
- Trunk 同步修改
A.java:修正 Bug Y。
- 雙方皆 Commit 送交版本庫。
合併分支回 Trunk
- 切換至
trunk 工作副本,右鍵 → TortoiseSVN → Merge...
- 選擇 Merge two different trees(合併兩個樹)。
- From URL:選擇分支路徑;From Revision:選擇分支建立時的 revision(Show log 取最舊)。
- To URL:同分支路徑;To Revision:選擇 HEAD Revision(最新)。
- 下一步保持預設,按 Merge 執行合併。
合併結果僅存在本地工作副本,需檢查無誤後再 Commit 送交版本庫。若發生衝突,可用 Resolve 處理或 Revert 放棄本次合併。
重要原則
- 勿重複合併同一分支:第二次合併難以確定起始 revision,建議合併後重新建立新分支續作。
- 合併為可逆操作:Merge trunk to branch 流程相反,同樣適用。
分支建立原理
SVN 使用「廉價複製」:儲存節點參考而非實體檔案,故建立分支極快且不膨脹倉庫。