1竞穷、Merge a range of revisions(合并一個范圍的版本)
? ? ?此類型應(yīng)用最為廣泛淘钟,主要是把分支中的修改合并到主干上來崇棠。在主干上點擊右鍵選擇合并先嬉,然后選擇合并類型:合并一個范圍的版本泵肄。
? ? ?合并的源URL填寫的是要合并的分支的URL煌寇,待合并的版本范圍如果為空焕蹄,則指的是合并分支上所有的版本,即自從分支創(chuàng)建以來到分支當(dāng)前最新版本的 所有演變阀溶。如果只是選擇其中一個版本腻脏,或者幾個版本,那么就表示只是將制定的n個版本的變化合并到主干上银锻。如果只是選擇其中一個版本永品,那么表示只是選擇那 個版本的修改,之前或之后的修改將不被采納击纬。
2鼎姐、Reintegrate a branch(復(fù)興合并)
? ? ?復(fù)興合并可以理解為是第一種合并類型的一種特例,在復(fù)興合并中更振,主干可以理解為是自從開創(chuàng)分支之后沒有任何修改炕桨,而分支是經(jīng)過修改的,而且合并中分支是沒 有版本選擇的肯腕。經(jīng)過復(fù)興合并献宫,分支中所有的修改都會合并到主干中,合并的結(jié)果將使得分支和主干一模一樣实撒,從而可以刪除分支姊途。
3、Merge two different trees(合并兩個不同的樹)
? ? ?此類型與前兩種類型不同知态,第一種類型可以選擇分支合并的版本捷兰,主干不能選擇版本;第二種類型是主干和分支都不能選擇合并的版本负敏;而這種類型則是無論是主干 還是分支都可以選擇合并的版本贡茅,即可以選擇過去的一個主干版本與分支的某個版本進(jìn)行合并。合并的時候以選擇的分支版本為主原在,如果選擇的主干版本與分支版本 有不同的地方友扰,合并時主干部分將被放棄。
起始URL:選擇主干目錄的URL(應(yīng)當(dāng)和當(dāng)前工作副本的URL一致庶柿,這個是所謂的合并點)
結(jié)束URL:選擇要合并的分支的URL村怪。
起始和結(jié)束的版本:一般起始版本應(yīng)當(dāng)找到最后一次同步時的版本,如果從沒有同步過(第一次合并)浮庐,則選擇創(chuàng)建分支時的版本甚负,結(jié)束版本一般是最新版本柬焕,如果你不想將某些內(nèi)容合并進(jìn)主干的話,也可以選擇一個合并點梭域。
利用SVN合并具體步驟
合并一個版本范圍
該類型是根據(jù)SVN指定的版本號來合并斑举,也是最靈活的一種合并方式,可以是主干合并到分支病涨,或分支合并到主干富玷;主要應(yīng)用場景是把分支或主干里面的一部分修改同步到主干或分支中去;甚至支持不同庫的兩個分支既穆,當(dāng)然這兩個分支要求是相同的目錄結(jié)構(gòu)赎懦。
1.把主干check out到本地,并確保文件更新到最新狀態(tài)
2.按照下圖示打開合并對話框:
3.選擇合并類型:
根據(jù)合并類型進(jìn)行選擇幻工,這里的例子中是選擇第一個類型励两,然后再點“Next”按鈕。
4.填寫SVN URL和版本號信息:
“URL to merge from”下拉框選擇需要合并分支或主干囊颅,在例子中当悔,選擇的是分支v1.0;在“revision range to merge”文本框選擇具體需要合并的SVN版本號踢代,可通過“show log”按鈕查看有哪些版本號盲憎。可選擇具體的版本號胳挎,也可以選擇一個區(qū)間的版本號焙畔,如4-7,表示從SVN版本號4-7的全部合并串远。如選擇區(qū)間版本號,需按住shift鍵儿惫。輸入各項信息后澡罚,再點“next”。
5.合并選項的選擇
在這個步驟中肾请,主要是針對檢索深度留搔、行的結(jié)束符、空格選項的合并做設(shè)置铛铁,這里選擇默認(rèn)選項即可隔显。
6.測試合并
在上面步驟中,直接點“test merge”按鈕來測試合并結(jié)果饵逐。如果有沖突括眠,則會有提示有沖突:
7.開始合并
在步驟6中,直接點擊“merge”按鈕將會開始合并倍权,如沒有沖突時掷豺,合并后的對話框?qū)⑹窍旅娴慕貓D:
8.處理沖突
合并后有沖突時,彈出的對話框如下圖,注意此時“resolved”按鈕是灰色:
點“edit conflict”按鈕当船,將打開SVN的合并對話框题画,讓開發(fā)者進(jìn)行手工合并:
通過手工合并后,合并后的代碼將在下面窗口中顯示德频,確認(rèn)合并完畢苍息,點工具欄上的第二個保存圖標(biāo)進(jìn)行保存,并關(guān)閉當(dāng)前合并的對話框壹置;回到處理沖突的對話框中竞思,會發(fā)現(xiàn)之前“resolved”按鈕是灰色,現(xiàn)在變成可點按鈕:
點“resolved”按鈕蒸绩,至此衙四,當(dāng)前的沖突已解決;SVN會繼續(xù)合并后面的版本患亿。
9.提交代碼
合并完代碼后传蹈,最后別忘記提交代碼,同時要輸入注釋步藕,方便日后追溯惦界。注釋參考格式如下:從[分支或主干]合并代碼到[主干或分支],版本號是從[開始的版本號]到[結(jié)束的版本號]咙冗;
五沾歪、注意事項或建議
1.在使用SVN進(jìn)行合并時,如何知道哪些版本號是合并過呢雾消?在查看日志對話框中灾搏,已合并過版本號會變成灰色。
2.在修改代碼時立润,建議遵循最小化修改原則狂窑,就是在修改代時,不要隨意增加空格桑腮、空行和格式化泉哈、甚至包括文件的編碼,有助于方便合并代碼破讨。
3.圖片無法進(jìn)行自動合并丛晦,但可利用SVN自帶的圖片對比工具來對比。
4.建議合并時提陶,使用“test?merge”來查看有多少沖突烫沙,如果沖突較多,可分多次合并搁骑,減少合并的復(fù)雜性斧吐。
參考資料:如何利用SVN合并代碼