SVN主干(trunk)、分支(branch)、標(biāo)記(tag)_第1頁(yè)
SVN主干(trunk)、分支(branch)、標(biāo)記(tag)_第2頁(yè)
SVN主干(trunk)、分支(branch)、標(biāo)記(tag)_第3頁(yè)
SVN主干(trunk)、分支(branch)、標(biāo)記(tag)_第4頁(yè)
SVN主干(trunk)、分支(branch)、標(biāo)記(tag)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 1 / 5 SVN 主干(trunk)、分支(branch )、標(biāo)記(tag) 在SVN中Branch/tag在一個(gè)功能選項(xiàng)中,在使用中也往往產(chǎn)生混淆。 在實(shí)現(xiàn)上,branch和tag,對(duì)于svn都是使用copy實(shí)現(xiàn)的,所以他們?cè)谀J(rèn)的權(quán)限上和一般的目錄沒有區(qū)別。至于何時(shí)用tag,何時(shí)用branch,完全由人主觀的根據(jù)規(guī)范和需要來(lái)選擇,而不是強(qiáng)制的(比如cvs)。 一般情況下, trunk: 是用來(lái)做主方向開發(fā)的,一個(gè)新模塊的開發(fā),這個(gè)時(shí)候就放在trunk,當(dāng)模塊開發(fā)完成后,需要修改,就用branch。 branch: 是用來(lái)做并行開發(fā)的,這里的并行是指和trunk進(jìn)行比較。 tag: 是用

2、來(lái)做一個(gè)milestone的,不管是不是發(fā)布版本,但都是一個(gè)可用的版本。這里,應(yīng)該是只讀的。更多的是一個(gè)顯示用的,給人一個(gè)可讀的標(biāo)記。 比如,3.0開發(fā)完成,這個(gè)時(shí)候要做一個(gè)tag,tag_release_3_0,然后基于這個(gè)tag做發(fā)布,比如安裝程序等。trunk進(jìn)入3.1的開發(fā),但是3.0發(fā)現(xiàn)了bug,那么就需要基于tag_release_3_0做一個(gè)分支(branch),branch_bugfix_3_0,基于這個(gè)branch進(jìn)行bug修改,等到bugfix結(jié)束,做一個(gè)tag,tag_release_3_0_1,然后,根據(jù)需要決定branch_bugfix_3_0是否并入主干(trunk

3、)。 對(duì)于svn還要注意的一點(diǎn),就是它是全局版本號(hào),其實(shí)這個(gè)就是一個(gè)tag的標(biāo)記,所以我們經(jīng)??梢钥吹剑裁磖elease,基于xxx項(xiàng)目的2xx版本。就是這個(gè)意思了。但是,它還明確的給出一個(gè)tag的概念,就是因?yàn)檫@個(gè)更加的可讀,畢竟記住tag_release_1_0要比記住一個(gè)很大的版本號(hào)容易的多。 branches: 2 / 5 分枝 當(dāng)多個(gè)人合作,可能有這樣的情況出現(xiàn): John突然有個(gè)想法,跟原先的設(shè)計(jì)不太一致,可能是功能的添加或者日志格式的改進(jìn)等等,總而言之,這個(gè)想法可能需要花一段時(shí)間來(lái)完成,而這個(gè)過程中,John的一些操作可能會(huì)影響Sally的工作,John從現(xiàn)有的狀態(tài)單獨(dú)出一個(gè)p

4、roject的話,又不能及時(shí)得到Sally對(duì)已有代碼做的修正,而且獨(dú)立出來(lái)的話,John的嘗試成功時(shí),跟原來(lái)的合并也存在困難。這時(shí)最好的實(shí)踐方法是使用branches。John建立一個(gè)自己的branch,然后在里面實(shí)驗(yàn),必要的時(shí)候從Sally的trunk里取得更新,或者將自己的階段成果匯集到trunk中。 創(chuàng)建分支的命令: (svn copy SourceURL/trunk DestinationURL/branchName -m Creating a private branch of xx/trunk.) trunk: 主干 主干,一般來(lái)說(shuō)就是開發(fā)的主要呆的地方, tag::標(biāo)記 在經(jīng)過了

5、一段時(shí)間的開發(fā)后,項(xiàng)目到達(dá)了一個(gè)里程碑階段,你可能想記錄這一階段的代碼的狀態(tài),那么你就需要給代碼打上標(biāo)簽。 創(chuàng)建標(biāo)記的命令: (svn cp file: /svnroot/mojavescripts/trunk file: /svnroot/mojavescripts/tags/mirrorutils_rel_0_1-m taged mirrorutils_rel_0_1)另有一說(shuō),無(wú)所謂誰(shuí)對(duì)誰(shuí)錯(cuò)。 3 / 5 trunk: 表示開發(fā)時(shí)版本存放的目錄,即在開發(fā)階段的代碼都提交到該目錄上。 branches: 表示發(fā)布的版本存放的目錄,即項(xiàng)目上線時(shí)發(fā)布的穩(wěn)定版本存放在該目錄中。 tags: 表示

6、標(biāo)簽存放的目錄。 在這需要說(shuō)明下分三個(gè)目錄的原因,如果項(xiàng)目分為一期、二期、三期等,那么一期上線時(shí)的穩(wěn)定版本就應(yīng)該在一期完成時(shí)將代碼copy到branches上,這樣二期開發(fā)的代碼就對(duì)一期的代碼沒有影響,如新增的模塊就不會(huì)部署到生產(chǎn)環(huán)境上。而branches上的穩(wěn)定的版本就是發(fā)布到生產(chǎn)環(huán)境上的代碼,如果用戶使用的過程中發(fā)現(xiàn)有bug,則只要在branches上修改該bug,修改完bug后再編譯branches上最新的代碼發(fā)布到生產(chǎn)環(huán)境即可。 tags的作用是將在branches上修改的bug的代碼合并到trunk上時(shí)創(chuàng)建個(gè)版本標(biāo)識(shí),以后branches上修改的bug代碼再合并到trunk上時(shí)就從t

7、ags的version到branches最新的version合并到trunk,以保證前期修改的bug代碼不會(huì)再合并。 - 一直以來(lái)用svn只是當(dāng)作cvs,也從來(lái)沒有仔細(xì)看過文檔,直到今天用到,才去翻看svn book文檔,慚愧 需求一: 有一個(gè)客戶想對(duì)產(chǎn)品做定制,但是我們并不想修改原有的svn中trunk的代碼。 方法: 用svn建立一個(gè)新的branches,從這個(gè)branche做為一個(gè)新的起點(diǎn)來(lái)開發(fā) 4 / 5 svn copy svn: /server/trunk svn: /server/branches/ep -m init ep Tip: 如果你的svn中以前沒有branches這個(gè)的目錄,只有trunk這個(gè),你可以用 svn mkdir branches xx個(gè)目錄 需求二: 產(chǎn)品開發(fā)已經(jīng)基本完成,并且通過很嚴(yán)格的測(cè)試,這時(shí)候我們就想發(fā)布給客戶使用,發(fā)布我們的1.0版本 svn copy svn: /server/trunk svn: /server/tags/release-1.0 -m 1.0 released咦,這個(gè)和branches有什么區(qū)別,好像啥區(qū)別也沒有? 是的,branches和tags是一樣的,都是目錄,只是我們不會(huì)對(duì)這個(gè)release-1.0的tag做修改了,不再提交了,如果提交那么就是branches

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論