1、所有項(xiàng)目都在一個(gè)SVN庫(kù)中么?
對(duì)于這個(gè)問題,個(gè)人認(rèn)為,應(yīng)該每個(gè)項(xiàng)目建一個(gè)SVN庫(kù),為什么這樣說呢,因?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)目的版本情況。
參考了國(guó)外一些主要的開發(fā)網(wǎng)站,如SourceForge,大同小異,類似這樣的目錄結(jié)構(gòu):
SVN庫(kù)
┠tags(發(fā)布)
┃ ├1.1 rc1
┃ ├1.2
┃ ├1.5
┃ └1.9
┠trunk (主版本)
┃ └ project
┃ ├src
┃ ├classes
┃ └WEB-INF
┖branches (分支)
└分支
主要的開發(fā)工作放在trunk,分支放在branches,發(fā)布版本放在tags。
存儲(chǔ)庫(kù)
┠項(xiàng)目名
┃ ├trunk:主版本
┃ ├branches:分支版本(獨(dú)立版本)
┃ └tags:標(biāo)記版本,比如發(fā)行版 v 1.0/ v 2.0等等
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ū)對(duì)象后,應(yīng)該立刻提交到版本庫(kù),有效保持工作區(qū)與資源庫(kù)的高度一致 ,每天下班之前提交、(更新)
6、開發(fā)人員在每次修改工作區(qū)中代碼或者文檔時(shí),首先更新該對(duì)象,可以盡量減少?zèng)_突、合并
7、保證提交到的版本庫(kù)的代碼沒有BUG以免影響開發(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
聯(lián)系客服