iT邦幫忙

DAY 21
8

版本控管觀念與技巧使用Subversion為例系列 第 21

TortoiseSVN 使用,如何合併主線的變動至分支

前面說到分支(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)。

[鐵人賽] TortoiseSVN 使用,如何合併主線的變動至分支 | demo小鋪


上一篇
TortoiseSVN 使用,使用分支Branch開發新功能
下一篇
TortoiseSVN 使用,如何合併分支至主線
系列文
版本控管觀念與技巧使用Subversion為例30

尚未有邦友留言

立即登入留言