本文介紹如何以圖形化介面操作 SVN,以下皆使用 TortoiseSVN v1.12 進行。
如何建立新 Branch
- 移動到程式專案的主目錄,從右鍵選擇 TortoiseSVN 內的 branch 功能。接著輸入想要的 branch 路徑,並確認選擇的資料夾名稱是否正確。建立的 branch 會複製所選擇的整個資料夾,即底下會包含程式專案的主目錄。
- 因此在專案的根目錄底下建立 branch 時會把整個根目錄都加進去!若不小心建立不合適的 branch,可使用 Repo-Browser 檢查、刪除並 Commit。
Merge 至 Trunk
- 在合併的結果目錄 (如 trunk) 上點右鍵,選擇 Merge,再選擇需要合併的 branch。這個順序適用於 branch 的新功能都已開發完成,要合併回 trunk 的狀況。
- 可選擇要合併所有的版本 (Revision) 或是特定範圍的 Revision,並在此時確認修改的檔案 (或程式碼)。
- 可按下 Test Merge 測試 Merge 將遇到的結果。
- 在實際 Merge 遇到衝突時,可選擇保留 Incoming (如 branch)、保留 Local (如 trunk),或是直接編輯文件並解決 (Resolved) 衝突。
在 TortoiseSVN v1.12 上編輯衝突的文件時,可以先在編輯器按下存檔並關閉,再按下 Resolved。
- 在合併完成後,先 Commit,以利後續修改目錄時的追蹤。 (ex. 未來發現錯誤時,可尋找是哪一次的合併發生問題)
- 如何記憶:
主線的異動合併至分支,所以在分支發動 分支的異動合併至主線,所以在主線發動
版本控管 - TortoiseSVN 使用,如何合併分支至主線 - demo小鋪
SVN Merge 教學 - 已經用了版本控制系統,你還在手動合併程式碼嗎? - Soul & Shell Blog
4.20. Merging - TortoiseSVN Documentation
講解 Subversion 分支與合併:以 TortoiseSVN 為例 - The Will Will Web
在 SVN 中忽略 (Ignore) 特定檔案
- 忽略掉那些不必被加入版控的檔案,如暫存檔、二進位執行檔。因此可將重點放在修改的程式碼上,也減少 Commit 時紀錄的檔案。
- 建立一個 .svnignore 檔案,並在裡面加入要忽略的檔案或資料夾。接著使用以下的指令遞迴套用至每個資料夾:
svn propset svn:ignore -R -F .svnignore .
- 要連受版控的目錄一起刪掉,新的目錄才會被忽略。
SVN 歷險記 - Xcode + SVN 之 ignore - 熊屋 - 技術小記
C# 專案中出現 .mine 錯誤
- 將專案下的 obj 資料夾刪除,即可解決。
- 或者將 obj 資料夾加入 SVN 忽略掉的清單。
Error in VS Build: Files has invalid value “«««< .mine”. Illegal characters in path