merge

SVN Merge

-
Free tags: 

使用了 SVN 一段時間之後, 你便會遇到複雜的情況: Conflicts
例如你和你的拍擋同時在修改同一個文件, 大家都是基於 r27
你的拍擋 commit 了, 變成 r28
但係也 commit 一個基於 r27 的檔案, 想要變作 r28
而且大家修改的行數相當接近, 自動的 merge 不能完成的時候
SVN 便會提示你, 已經發生了一個 Conflict
要求你先 solve Conflict 再 commit, 也即你需要 Merge 了

有 conflict 的檔案會標示為 conflict state, 檔案的內容也會有相關 conflict 的資料

你需要做的便是先 update, 將你的拍檔修改的部份了解一下
再手動修改這個檔案, 直到它能正常執行
也包含了你和你的拍檔的修改之後
儲存, 將這個檔案摽示為 "已解決"

SVN merge

-
Free tags: 

merge 是一件麻煩事. 當然, 用了branch 或者tag 才需要 merge.

當一個或者多個commit 需要同時應用到另一個branch, 你便需要merge. 通常你都會從trunk merge 到branch 的

一開始使用merge 可能會感到害怕, 但merge 和commit, update 一樣, 用多了使自然覺得很方便了. 而且, 不需要擔心merge 錯, 因為merge 的動作本身是不會提交到svn 的. merge 完了, 你確認了代碼, 功能都沒有問題之後, commit, 才會提交到svn.

在merge 的過程, 你要選擇你merge 的 revision number, 所以, svn 的 commit message 便很重要, 會是你決定用不用某一commit 的最重要依據.

merge 時, 你應該先switch 到被merge 的branch, 再選擇trunk 的revision, 例如, trunk revision 123 需要copy 到 branch, 便應該switch 到 branch, 再用merge

Google