星期四, 4月 28, 2005

[雜記]WinCVS branch and merge

CVS 該怎麼 branch 與 merge ??
其實 CVS 手冊上都蠻清楚的...
只是看起來很模糊,再加上我用的是 WinCVS ... 網路上對 WinCVS 的著墨實在是不多....

如何 branch ??
進入 WinCVS 以後, 選 [Remote][Create a branch]
把 Branch name 與 Module name 填一填就好了.
Branch name 你可以自訂,但第一個字母不能是數字.
Module name 就是你的專案名稱...

接下來,該怎麼在 branch 上開發呢??
首先你要先把原先的內容備份,然後重新以新的 branch name checkout, 也就是選[Remote][Checkout module] 的時候,得特別選到 "Update Options", 勾選 "By revision/tag/branch", 並填入你剛剛建立的 branch 名稱, 這樣就行了.
接下來,就照一般的開發步驟就行了,每次 commit 以後,你會發現 Rev 欄的號碼跟 Main trunk 的 rev 不太一樣,這表示是正確的.

最後要怎麼 merge 呢??
一般來說,不會有 branch 去 merge main trunk 的狀況....我當初就想幹這蠢事,結果發現根本沒辦法做.... >_<
都是從某一 branch 去 merge 某 branch, 或是從 Main trunk 去 merge branch.
首先,得先 checkout Main trunk 下來,接著選 Update, Update 的時候要特別去選 "Merge Options", 把 Merge type 選為 "Merge with one rev/tag", 填入你要 merge 的 brankch name 即可,其他地方不需要特別勾選.
這邊有一個地方要特別注意,就是該 branch 一定要有更動過 (也就是有 commit 新東西上去 ), 才可以 merge, 否則會都沒反應...
Merge 完以後,你就可以去處理 conflict 或是測試看看有沒有問題,然後把有更動的檔案都 commit 上去就好, 換言之, merge 以後並不會馬上生效,而是還要再 merge 才生效.

沒有留言: