日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SVN分支管理策略

發(fā)布時(shí)間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SVN分支管理策略 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版本庫布局

在將數(shù)據(jù)導(dǎo)入到版本庫之前,首先需要考慮如何組織數(shù)據(jù)。如果使用一種推薦的布局,以后的操作將會(huì)更容易許多。

有一些標(biāo)準(zhǔn)的,推薦使用的組織版本庫結(jié)構(gòu)的方法。大多數(shù)人創(chuàng)建一個(gè) trunk 目錄掌管開發(fā)的 “主干”,一個(gè) branches 目錄存放分支副本,以及一個(gè) tags 目錄存放標(biāo)記副本。如果一個(gè)版本庫只掌管一個(gè)項(xiàng)目,那么人們通常創(chuàng)建這些頂級(jí)目錄:

/trunk

/branches

/tags

因?yàn)檫@個(gè)布局非常通用,所以當(dāng)使用TortoiseSVN 創(chuàng)建版本庫時(shí),它會(huì)提出幫你創(chuàng)建這個(gè)目錄結(jié)構(gòu)。

如果一個(gè)版本庫包含多個(gè)項(xiàng)目,人們通常按分支來安排布局:

/trunk/paint

/trunk/calc

/branches/paint

/branches/calc

/tags/paint

/tags/calc

……或者按項(xiàng)目:

/paint/trunk

/paint/branches

/paint/tags

/calc/trunk

/calc/branches

/calc/tags

如果項(xiàng)目不是密切相關(guān),而且每一個(gè)是單獨(dú)被檢出,那么按項(xiàng)目布局是合理的。

對(duì)于那些你想一次檢出所有項(xiàng)目,或需要將它們打成一個(gè)分發(fā)包的相關(guān)項(xiàng)目,按分支來布局通常比較好。這種方式你只要檢出一個(gè)分支,而且子項(xiàng)目之間的關(guān)系也比較清楚。

SVN分支策略介紹

版本控制系統(tǒng)的一個(gè)特性是能夠把各種修改分離出來放在一個(gè)單獨(dú)的開發(fā)線上。這條線被稱為分支。分支經(jīng)常被用來試驗(yàn)新的特性,而不會(huì)干擾正在修改編譯器錯(cuò)誤和bug的主開發(fā)線。當(dāng)新的特性足夠穩(wěn)定之后,開發(fā)分支就可以合并進(jìn)主分支里(主干)。

版本控制系統(tǒng)的另一個(gè)特性是能夠標(biāo)記特殊的版本(例如一個(gè)發(fā)布版本),所以你可以在任何時(shí)候重新建立一個(gè)特定的構(gòu)建或環(huán)境。這個(gè)過程被稱作標(biāo)記。

有了分支和標(biāo)記的概念也就明白了為什么說使用推薦的布局方式會(huì)使以后的操作方便很多。

SVN中沒有用于建立分支和標(biāo)記的特殊命令,但是可以使用所謂的“Cheap copies”來代替。“Cheap copies”類似于Unix里的硬連接,它意思是創(chuàng)建一個(gè)內(nèi)部的鏈接而非復(fù)制一個(gè)完整的版本庫。這個(gè)鏈接指向一個(gè)具體的版本樹。這樣分支和標(biāo)記可以迅速被創(chuàng)建,并且?guī)缀鯖]有在版本庫里占據(jù)任何額外的空間。

下面是常用的SVN的分支策略模式,也可能是比較適合CG中Device代碼維護(hù)的一種策略模式。當(dāng)然最合適的模式需要經(jīng)過一段時(shí)間的使用,不斷調(diào)整后才能得到。


其中

Trunk: 主開發(fā)分支,所有最新的代碼都在這里

Tags: 一個(gè)里程碑版本(名字:”1.0”,”1.1”,”2.1”,”EMC-1.0”,”EMC-1.1”,”O(jiān)EM-1.0”…),用于存放發(fā)布的版本

Bugfix branch: 修正bug的分支(名字:”bugfix-1.x”,” EMC-bugfix-1.x”, “OEM-bugfix-1.x”),一般從某個(gè)tag拉出來,用于解決這個(gè)大版本的所有bug

Customize function dev branch: 特殊需求的開發(fā)分支(名字:”O(jiān)EM-dev”,”Japan-dev”,…),用于為某個(gè)客戶的特殊需求開發(fā)一個(gè)版本。

SVN分支管理的具體使用

SVN中使用很重要的一方面是,開發(fā)支線和主干的管理。

開發(fā)支線中可以試驗(yàn)一下新特性,待新特性開發(fā)完畢后再合并到主干中。這樣需要使用到SVN的兩個(gè)功能:“分支”和“合并”。在使用“分之”后需要按照提示使用“切換”命令切換到分支中進(jìn)行新特性的編碼和測試。

“合并”時(shí)有一個(gè)注意的事項(xiàng)就是總是在工作副本進(jìn)行的。如果你想要合并修改到分支,你必須檢出該分支的工作副本,并且從這個(gè)工作副本使用“TortoiseSVN→合并”來調(diào)用合并向?qū)А?/p>

一般情況下,將branch調(diào)試完畢后的代碼合并到trunk,可以選擇這樣的操作:首先,將當(dāng)前新特性所有的更改提交;然后,通過“切換”命令返回到trunk目錄;最后通過“合并”命令將剛才分支中的新特性添加到主干中。

通過日常分支和合并的管理,既可以使團(tuán)隊(duì)并行開發(fā),又可以使團(tuán)隊(duì)在整合時(shí)能夠方便快捷的達(dá)到目的。

SVN版本分支圖

SVN版本分支圖可以指示用戶從哪里開始有了分支/標(biāo)記,說明某條支路是單獨(dú)的分支還是樹型結(jié)構(gòu),從而使用戶進(jìn)行更清晰的分支/標(biāo)記管理。

?

SVN分支管理策略的應(yīng)用

分支管理策略在實(shí)際使用中還需要具體問題具體分析,生搬硬套往往會(huì)出現(xiàn)問題。分支管理策略雖好,但也不適用于所有的使用情景。

如果不同的項(xiàng)目屬于并列的內(nèi)容,需要單獨(dú)開發(fā)維護(hù),屬于“橫向”內(nèi)容的擴(kuò)充,則可以在版本庫中已添加文件的方式將項(xiàng)目添加進(jìn)來。

/paint/trunk

/paint/branches

/paint/tags

/calc/trunk

/calc/branches

/calc/tags

……

這樣就屬于項(xiàng)目的添加。需要項(xiàng)目管理者在版本庫中添加新的項(xiàng)目,項(xiàng)目的開發(fā)維護(hù)者從版本庫中更新下來,再繼續(xù)完成修改或者是新內(nèi)容的添加。

對(duì)于同一個(gè)項(xiàng)目,存在著從無到有,從不穩(wěn)定到穩(wěn)定的“縱向”維護(hù)的問題,以及各種版本發(fā)布,修復(fù)bug升級(jí)問題。

這樣使用SVN的分支管理策略就顯得非常重要了。

概括來說,對(duì)于同一項(xiàng)目的“縱向”增長使用分支管理策略;對(duì)于“橫向”增長問題,沒有必要使用分支管理策略,如果使用只會(huì)增加管理的復(fù)雜度。

總結(jié)

以上是生活随笔為你收集整理的SVN分支管理策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。