當某個在開發新功能的 branch 完成之後, 當然就是把這個新功能 merge 回 trunk, 要怎麼 merge 勒? 首先, branch 一定會是從某個 trunk 的 revision 建立的, 所以可以用下列指令來找出某個 branch 建立的點

列出來應該像是下面這樣 (當然每個 revision 的敘述不可能會是這樣 XD):

———————————————————-
r47 | tzangms | 2007-10-10 12:55:21 -0700 (Wed, 10 Oct 2007)
Oh man, It’s holiday. Are you still coding?
———————————————————-
r46 | tzangms | 2007-10-10 12:55:21 -0700 (Wed, 10 Oct 2007)
Just like a mess XD
———————————————————-
r45 | tzangms | 2007-10-10 12:55:21 -0700 (Wed, 10 Oct 2007)
I have no idea about this fix.
———————————————————-

ok 看到最下方, 就是這個 branch 一開始建立的 revision, 這個例子來說就是 revision 45, 就先記下來。(應該有更好的方式才對)

接著在你目前的 working copy 打入下列指令, 當然目前的 working copy 應該是最新的 trunk

在這個指令執行結束之後, 應該會看到, svn 會列出對目前程式碼的更動, 大多應該都是更新、或者是新增檔案吧, 然後你目前的 working copy 就是最新版本, 還有你所 merge 進來的 branch 的功能, 當然, 搞不好會有 conflicts XD

最後就是將這個 merge 好的程式碼 commit 囉, 就大功告成了!

因為最近在開發某個新功能, 開了個新 branch 來作, 原本的 trunk 還有另一個 programmer 在開發, 東西有可能會持續更新上線, 所以開 branch 來用才不會打亂原本的程式碼, 然而下禮拜這新功能要上線了, 所以今天把開發好的東西 merge 回 trunk, 就順便寫了這一篇。