[版本控管] TortoiseSVN 使用,如何合併主線的變動至分支
- 2011-11-01
- 30873
- 0
- Subversion SVN 版本控管
前面說到分支(Branch)與主線(Trunk)是完全隔離的,分支(Branch)的異動並不會影響主線(Trunk),反過來主線(Trunk)的變動也不會滲透到分支內,這是前一篇在在提分支(Branch)的時候一直強調的概念,但這會造成一個問題!
試想不管是多人開發還是獨行俠的環境下,當你分支出去了以後主線(Trunk)遇到了 Bug 還是需要回到主線(Trunk)來修改的,修改完畢後主線(Trunk)的 Bug 消失了,但分支(Branch)的還存在,如果說要手動再回分支(Branch)來改一次這就蠢了,因此要利用合併的功能將主線(Trunk)的變動合併至分支(Branch)。
demo 模擬了如下的情況,在分支(Branch)建立後主線(Trunk)又增加了一各檔案,這時候分支是沒有這玩意的
如果我們明確的知道了主線(Trunk)有異動那越早進行合併越好,因為這樣可以減少往後的衝突(Conflicted)
現在要來進行主線(Trunk)異動合併(Merge)至分支(Branch)的動作,這時候我們因該是身處於分支(Branch)的情況,在空白區塊按「滑鼠右鍵」→「TortoiseSVN」→「Merge」
在第一個區塊內選擇主線(Trunk)的位置
一般來說就是用預設值
建議在按下 「Merge」 之前先使用「Test merge」模擬一下合併(Merge)會發生的情況,其實也不能解決什麼,只是如果有衝突(Conflicted)會先知道,有點心理準備….
版本的確合併(Merge)了進來
還記得嗎?在你還沒送交(Commit)之前變更是不會有效的,所以從主線(Trunk)合併(Merge)來的新檔案會顯示為新增的圖示,當你一切都檢查確定了以後就可以真的來執行送交(Commit)的動作了。
以上步驟是當你有使用分支(Branch)以後註定要常執行的,只要得知主線(Trunk)變動就合併(Merge)一次,避免和主線(Trunk)脫勾太久,即使有發生衝突(Conflicted)也會在很少的地方衝突(Conflicted),而且你正在開發所以熟悉度會更高,解決衝突(Conflicted)的判斷會更明確,就算發生了衝突(Conflicted)無法解決的時候,也只會發生在分支(Branch)!無需擔心主線(Trunk)受影響,分支(Branch)要怎麼手動解決衝突(Conflicted)就會變成是分支(Branch)的事情,因此把這個習慣養成後你所創造的分支(Branch)將來要合併去主線(Trunk)就容易的多了,也不會在要合併(Merge)的時候才衝出一連串的衝突(Conflicted)。
回應討論