SVN庫(kù)的目錄結(jié)構(gòu)詳解
本節(jié)和大家討論一下SVN庫(kù)的目錄結(jié)構(gòu)問(wèn)題,這里我發(fā)表一下個(gè)人理解,和大家討論討論,歡迎大家一起來(lái)學(xué)習(xí)SVN庫(kù)的目錄結(jié)構(gòu)方面的知識(shí)。
1、所有項(xiàng)目都在一個(gè)SVN庫(kù)中么?
對(duì)于這個(gè)問(wèn)題,個(gè)人認(rèn)為,應(yīng)該每個(gè)項(xiàng)目建一個(gè)SVN庫(kù),為什么這樣說(shuō)呢,因?yàn)镾VN是全局版本,假如SVN庫(kù)是如下結(jié)構(gòu):
SVN庫(kù)<全局版本1.1>
┠項(xiàng)目A<1.1>
┖項(xiàng)目B<1.1>
這就會(huì)導(dǎo)致任何一個(gè)項(xiàng)目修改,影響全局版本修改,不能真實(shí)反映單個(gè)項(xiàng)目的版本情況。
2、SVN庫(kù)的目錄結(jié)構(gòu)該怎樣規(guī)劃?
參考了國(guó)外一些主要的開(kāi)發(fā)網(wǎng)站,如SourceForge,大同小異,類似這樣的目錄結(jié)構(gòu):
SVN庫(kù)
┠tags(發(fā)布)
┃├1.1rc1
┃├1.2
┃├1.5
┃└1.9
┠trunk(主版本)
┃└project
┃├src
┃├classes
┃└WEB-INF
┖branches(分支)
└分支
主要的開(kāi)發(fā)工作放在trunk,分支放在branches,發(fā)布版本放在tags。
存儲(chǔ)庫(kù)
┠項(xiàng)目名
┃├trunk:主版本
┃├branches:分支版本(獨(dú)立版本)
┃└tags:標(biāo)記版本,比如發(fā)行版v1.0/v2.0等等
3、SVN庫(kù)的管理原則:
1、項(xiàng)目負(fù)責(zé)人和版本管理員負(fù)責(zé)架構(gòu)項(xiàng)目目錄結(jié)構(gòu),包括配置文件、第三方JAR文檔
2、項(xiàng)目負(fù)責(zé)人分配開(kāi)發(fā)人員目錄權(quán)限,由版本管理員負(fù)責(zé)實(shí)施,權(quán)限分配粒度要細(xì)
3、trunk,tags,branches,項(xiàng)目負(fù)責(zé)人、協(xié)同版本管理員構(gòu)建tags和branches
4、版本管理員負(fù)責(zé)解決開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中的有關(guān)版本問(wèn)題
5、開(kāi)發(fā)人員每次修改,或者新增、刪除、拷貝工作區(qū)對(duì)象后,應(yīng)該立刻提交到版本庫(kù),有效保持工作區(qū)與資源庫(kù)的高度一致,每天下班之前提交、(更新)
6、開(kāi)發(fā)人員在每次修改工作區(qū)中代碼或者文檔時(shí),首先更新該對(duì)象,可以盡量減少?zèng)_突、合并
7、保證提交到的版本庫(kù)的代碼沒(méi)有BUG以免影響開(kāi)發(fā)組,可以適當(dāng)利用加鎖機(jī)制,減少?zèng)_突
8、項(xiàng)目負(fù)責(zé)人和版本管理員負(fù)責(zé)軟件的測(cè)試版,構(gòu)建測(cè)試環(huán)境,branches由版本管理員進(jìn)行(checkout)
9、項(xiàng)目負(fù)責(zé)人和版本管理員負(fù)責(zé)發(fā)布軟件的發(fā)布版,與系統(tǒng)部協(xié)調(diào)構(gòu)建發(fā)布環(huán)境(export)
10、版本管理員負(fù)責(zé)清理有關(guān)不需要的branches,tags。本節(jié)關(guān)于SVN庫(kù)的目錄結(jié)構(gòu)講解完畢。
【編輯推薦】