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