SVN分支和合并問題專家在線講解
本節(jié)向大家描述一下SVN分支和合并問題,在講解SVN版本庫目錄問題時(shí)我們提到了SVN分支問題,和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
盡管svn沒有作強(qiáng)制要求,但是一般svn版本庫目錄建議創(chuàng)建trunk、branches和tags三個(gè)目錄。在實(shí)際操作時(shí),trunk主干版本要時(shí)刻保持干凈,即隨時(shí)可以基于這個(gè)版本進(jìn)行修改并將應(yīng)用部署上線。branches是分支目錄,存放并行開發(fā)的項(xiàng)目代碼,因?yàn)榉种侵鞲傻牧畠r(jià)拷貝(相當(dāng)只是提交了一次主干版本,增加了一個(gè)版本號(hào),并沒有取出版本庫作鏡像拷貝),所以你可以放心建立很多分支版本。不過Subversion不支持跨版本庫的拷貝,當(dāng)使用svncopy時(shí)你只能在同一個(gè)版本庫內(nèi)操作。tags目錄存放trunk某個(gè)的快照,比如說release-1.0即trunk處于1.0版本時(shí)的快照。
使用svn來作團(tuán)隊(duì)的代碼管理,那么分支和合并將是非常常用的操作。下面是一個(gè)簡(jiǎn)單的示例。
一、創(chuàng)建SVN分支。這里假設(shè)你要負(fù)責(zé)一個(gè)叫theme的項(xiàng)目,分支號(hào)1.7.2。
1.#這里的localhost是svn服務(wù)器地址
2.svncopy-m"1.7.2-theme"svn://localhost/www/trunksvn://localhost/www/branches/branch1.7.2-theme
3.svncosvn://localhost/www/branches/branch1.7.2-theme
二、從trunk中merge到SVN分支。忙了一個(gè)星期終于開發(fā)完了,但是開發(fā)期間trunk版本有過改動(dòng),部署上線前你需要合并trunk的代碼。
1.#branch1.7.2-theme是分支目錄,注意不可以進(jìn)到分支子目錄
2.cdbranch1.7.2-theme
3.#前面的12972是開分支之前trunk的版本號(hào),后面的12991是merge時(shí)trunk的版本號(hào)
4.svnmerge-r12972:12991svn://localhost/www/trunk
如果有沖突選擇p(postpone),merge完了之后使用svnst|grep^C查看沖突文件,然后比對(duì)修改沖突文件。解決沖突后再checkin,信息寫上執(zhí)行的merge操作。
1.svnci-m'svnmerge-r12972:12991svn://localhost/www/trunk'
三、從SVN分支merge到trunk。上線測(cè)試完畢,你很幸運(yùn),一切都如預(yù)期正常,這時(shí)就要將分支回歸trunk,將trunk更新到最新。
1.#先從trunkcheckout一份新鮮的代碼,然后cd到該版本目錄下
2.svncosvn://localhost/www/trunk
3.cdtrunk
4.#12973是分支開始的版本號(hào),13006是分支結(jié)束的版本號(hào)
5.svnmerge-r12973:13006svn://localhost/www/branches/branch1.7.2-theme如步驟2一樣解決沖突,解決沖突后再checkin,信息寫上執(zhí)行的merge操作。
1.svnci-m"svnmerge-r12973:13006svn://localhost/www/branches/branch1.7.2-theme"。本節(jié)關(guān)于SVN分支和合并問題介紹完畢。
【編輯推薦】
- SVN分支與合并學(xué)習(xí)大本營(yíng)
- 深入講解SVN分支與合并的關(guān)系
- SVN分支與合并實(shí)例剖析
- 專家在線指導(dǎo)如何搭建SVN服務(wù)
- SVN分支維護(hù)專家在線