SVN分支管理模式解析_第1頁
SVN分支管理模式解析_第2頁
SVN分支管理模式解析_第3頁
SVN分支管理模式解析_第4頁
SVN分支管理模式解析_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SVN分支管理模式探析本文試圖從SVN分支管理的結(jié)構(gòu)模式、規(guī)則模式、使用場(chǎng)景、優(yōu)缺點(diǎn)分析等幾個(gè)方面闡述幾種不同的分支管理模式。結(jié)構(gòu)模式——通過約束和指導(dǎo)項(xiàng)目的整體目錄結(jié)構(gòu),實(shí)現(xiàn)并行開發(fā)的組織結(jié)構(gòu)、開發(fā)模式及開發(fā)過程的約束和指導(dǎo)。規(guī)則模式——通過對(duì)項(xiàng)目不同分支的相關(guān)的操作實(shí)施約束,如訪問控制、分支合并及發(fā)布等操作的約束和指導(dǎo)。單主干-串行開發(fā)模式使用場(chǎng)景你的系統(tǒng)只有一個(gè)版本發(fā)布給最終用戶;你的維護(hù)方式是讓客戶不斷升級(jí)到下一個(gè)版本;所有對(duì)系統(tǒng)的修改都必須包含在下一個(gè)版本中;已發(fā)布版本的bug是可控的,極少存在進(jìn)行下一個(gè)版本開發(fā)過程中進(jìn)行上一版本bug的修復(fù)工作。圖例結(jié)構(gòu)模式分支名稱源分支開發(fā)方式對(duì)應(yīng)版本trunk無項(xiàng)目開發(fā)人員主要分支,其他人員無需使用該分支當(dāng)前正在開發(fā)的版本-Devtagstrunk測(cè)試和發(fā)布專用分支,該分支代碼不允許任何形式的修改當(dāng)前正在測(cè)試的版本-Test當(dāng)前已經(jīng)發(fā)布的版本-Rbranches───規(guī)則模式權(quán)限規(guī)則:Trunk分支對(duì)項(xiàng)目開發(fā)人員讀寫權(quán)限、tags分支對(duì)所有人只讀權(quán)限、banches分支廢棄不用或很少用。分支規(guī)則:開發(fā)人員直接在trunk上進(jìn)行項(xiàng)目的開發(fā),提測(cè)階段從trunk上拉測(cè)試分支2010-12-15-1.0-T1到tags下,供測(cè)試人員進(jìn)行測(cè)試;發(fā)布階段從trunk上拉發(fā)布分支2010-12-15-1.0-R1到tags下,供發(fā)布人員進(jìn)行發(fā)布。優(yōu)缺點(diǎn)分析優(yōu)點(diǎn):分支結(jié)構(gòu)簡(jiǎn)單、清晰;開發(fā)過程中無分支合并/沖突解決等操作缺點(diǎn):不支持并行開發(fā);不支持多版本發(fā)布。單主干多分支-并行開發(fā)模式使用場(chǎng)景你的系統(tǒng)只有一個(gè)版本發(fā)布給最終用戶;你的維護(hù)方式是讓客戶不斷升級(jí)到下一個(gè)版本;所有對(duì)系統(tǒng)的修改都必須包含在下一個(gè)版本中;需要頻繁的修改前一個(gè)發(fā)布版本的bug,以及不斷開發(fā)新的版本。圖例結(jié)構(gòu)模式分支名稱源分支開發(fā)方式對(duì)應(yīng)版本trunk無主干凍結(jié),不允許開發(fā)當(dāng)前已經(jīng)發(fā)布的版本-Rtagstrunk測(cè)試和發(fā)布專用分支,該分支代碼不允許任何形式的修改當(dāng)前正在測(cè)試的版本-Test

當(dāng)前已經(jīng)發(fā)布的版本-Rbranchestrunk開發(fā)專用分支當(dāng)前正在開發(fā)的版本-Dev規(guī)則模式權(quán)限規(guī)則:Trunk權(quán)限凍結(jié)開發(fā),只有發(fā)布上線以后的版本才可以由SCM或SCM系統(tǒng)合并到trunk上;tags分支對(duì)所有人只讀權(quán)限,用戶測(cè)試、集成和發(fā)布分支用;banches分支是任何版本開發(fā)的唯一分支。分支規(guī)則:任何開發(fā)版本發(fā)起,都必須從trunk上copy出分支到branches進(jìn)行開發(fā);提交測(cè)試(集成、發(fā)布)必須先從trunk創(chuàng)建測(cè)試(集成、發(fā)布)分支,然后合并branches分支內(nèi)容,保證trunk內(nèi)容的更新及時(shí)反饋到集成;發(fā)布階段從trunk上拉發(fā)布分支2010-12-15-1.0-R1到tags下,然后合并branches內(nèi)容到tags,供發(fā)布人員進(jìn)行發(fā)布,發(fā)布成功后,合并tags分支到trunk。Trunk完成一次發(fā)布升級(jí)。優(yōu)缺點(diǎn)分析優(yōu)點(diǎn):可以隨時(shí)保證trunk上東西的穩(wěn)定性,使trunk隨時(shí)可用;可以從trunk上隨時(shí)拿到已發(fā)布的任意一個(gè)版本。缺點(diǎn):違背了SVN的規(guī)范,把trunk庫當(dāng)成了tag庫去使用;分支合并頻繁,導(dǎo)致沖突多,處理這些會(huì)消耗不少的資源,以及引入額外錯(cuò)誤的可能;不支持多版本發(fā)布。多主干-串行開發(fā)模式使用場(chǎng)景你的系統(tǒng)有多個(gè)版本發(fā)布給最終用戶;每個(gè)版本的維護(hù)都是獨(dú)立進(jìn)行的,只在需要的時(shí)候才進(jìn)行各版本的合并維護(hù);已發(fā)布版本的bug是可控的,極少存在進(jìn)行下一個(gè)版本開發(fā)過程中進(jìn)行上一版本bug的修復(fù)工作。圖例結(jié)構(gòu)模式分支名稱源分支開發(fā)方式對(duì)應(yīng)版本trunk無主版本的開發(fā)分支當(dāng)前正在開發(fā)的版本-DevversionTrunk/version維護(hù)版本的開發(fā)分支當(dāng)前正在開發(fā)的版本-Devtagstrunk測(cè)試和發(fā)布專用分支,該分支代碼不允許任何形式的修改當(dāng)前正在測(cè)試的版本-Test當(dāng)前已經(jīng)發(fā)布的版本-Rbranches------------規(guī)則模式權(quán)限規(guī)則:Trunk和version分支對(duì)項(xiàng)目開發(fā)人員讀寫權(quán)限、tags分支對(duì)所有人只讀權(quán)限、banches分支廢棄不用或很少用。分支規(guī)則:開發(fā)人員直接在trunk或version上進(jìn)行項(xiàng)目的開發(fā),提測(cè)階段從trunk或version上拉測(cè)試分支2010-12-15-1.0-T1到tags下,供測(cè)試人員進(jìn)行測(cè)試;發(fā)布階段從trunk或version上拉發(fā)布分支2010-12-15-1.0-R1到tags下,供發(fā)布人員進(jìn)行發(fā)布。Version開發(fā)分支可以從trunk或其他version分支上創(chuàng)建而來??梢愿鶕?jù)需要在version和trunk之間,或version之間合并代碼。優(yōu)缺點(diǎn)分析優(yōu)點(diǎn):分支結(jié)構(gòu)簡(jiǎn)單、清晰;開發(fā)過程中無分支合并/沖突解決等操作;支持多版本發(fā)布。缺點(diǎn):不支持并行開發(fā)。多主干多分支-并行開發(fā)模式使用場(chǎng)景你的系統(tǒng)有多個(gè)版本發(fā)布給最終用戶;每個(gè)版本的維護(hù)都是獨(dú)立進(jìn)行的,只在需要的時(shí)候才進(jìn)行各版本的合并維護(hù);對(duì)每個(gè)維護(hù)版本都需要頻繁的修改前一個(gè)發(fā)布版本的bug,以及不斷開發(fā)新的版本圖例結(jié)構(gòu)模式分支名稱源分支開發(fā)方式對(duì)應(yīng)版本trunk無主干被凍結(jié)當(dāng)前已經(jīng)發(fā)布的版本-RversionTrunk/version維護(hù)版本的主干,讀寫權(quán)限凍結(jié)當(dāng)前已經(jīng)發(fā)布的版本-Devtagstrunk測(cè)試和發(fā)布專用分支,該分支代碼不允許任何形式的修改當(dāng)前正在測(cè)試的版本-Test當(dāng)前已經(jīng)發(fā)布的版本-Rbranches----開發(fā)專用分支當(dāng)前正在開發(fā)的版本-Dev規(guī)則模式權(quán)限規(guī)則:Trunk和version分支讀寫權(quán)限凍結(jié),只有發(fā)布上線以后的版本才可以由SCM或SCM系統(tǒng)合并到trunk上;tags分支對(duì)所有人只讀權(quán)限;banches分支是開發(fā)人員專用讀寫分支。分支規(guī)則:任何開發(fā)版本發(fā)起,都必須從trunk或version上copy出分支到branches進(jìn)行開發(fā);提交測(cè)試(集成、發(fā)布)必須把先從trunk或version創(chuàng)建測(cè)試(集成、發(fā)布)分支,然后合并branches分支內(nèi)容,保證trunk或version內(nèi)容的更新及時(shí)反饋到集成;發(fā)布階段從trunk或version上拉發(fā)布分支2010-12-15-1.0-R1到tags下,然后合并branches內(nèi)容到tags,供發(fā)布人員進(jìn)行發(fā)布,發(fā)布成功后,合并tags分支到trunk或version。Trunk或version完成一次發(fā)布升級(jí)。Version維護(hù)主干分支可以從trunk或其他version分支上創(chuàng)建而來??梢愿鶕?jù)需要在version和trunk之間,或version之間合并代碼。優(yōu)缺點(diǎn)分析優(yōu)點(diǎn):支持多版本發(fā)布;支持最復(fù)雜的分支開發(fā)情況;產(chǎn)品版本樹規(guī)劃清晰。缺點(diǎn):版本和分支復(fù)雜,對(duì)產(chǎn)品版本樹維護(hù)人員要求高??偨Y(jié)以上四種模式,對(duì)應(yīng)我們B2B技術(shù)部的各個(gè)站點(diǎn),大致情況如下:對(duì)應(yīng)站點(diǎn)/產(chǎn)品線SVN管理分支模式備注國(guó)際站/中文站/核心單主干多分支-并行開發(fā)模式Branches開發(fā)ASC-算法部門單主干-串行開發(fā)模式Trunk開發(fā)ASC-isearch平臺(tái)多主干多分支-并行開發(fā)模式Trunk-version-branches開發(fā)平臺(tái)多主干-串行開發(fā)模式Trunk-version開發(fā),平臺(tái)目前是在branches下進(jìn)行每個(gè)版本的開發(fā)和維護(hù)數(shù)據(jù)倉(cāng)庫ITBU補(bǔ)充說明在本文的svn結(jié)構(gòu)模式里,增加了一個(gè)version目錄結(jié)構(gòu),這個(gè)目錄結(jié)構(gòu)在第四種分支管理模式中可以非常清楚的發(fā)現(xiàn)其作用:可以更加清晰的規(guī)劃和顯示產(chǎn)品的版本樹,且和開發(fā)分支branches的功能區(qū)分開來。而在第三種分支管理模式中,在目前的操作中一般就是直接在branches下進(jìn)行產(chǎn)品版本數(shù)的規(guī)劃和維護(hù)。本文為了統(tǒng)一概念和系統(tǒng)實(shí)施的規(guī)劃(例如Aone),還是建議統(tǒng)一增加versions目錄。前面兩種模式已經(jīng)在aone上實(shí)現(xiàn),第三鐘模式目前平臺(tái)在變相的使用,就

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論