1、所有項目都在一個(gè)SVN庫中么?
對于這個(gè)問(wèn)題,個(gè)人認為,應該每個(gè)項目建一個(gè)SVN庫,為什么這樣說(shuō)呢,因為SVN是全局版本,假如SVN庫是如下結構:
SVN庫 <全局版本 1.1>
┠ 項目A <1.1>
┖ 項目B <1.1>
這就會(huì )導致任何一個(gè)項目修改,影響全局版本修改,不能真實(shí)反映單個(gè)項目的版本情況。
參考了國外一些主要的開(kāi)發(fā)網(wǎng)站,如SourceForge,大同小異,類(lèi)似這樣的目錄結構:
SVN庫
┠tags(發(fā)布)
┃ ├1.1 rc1
┃ ├1.2
┃ ├1.5
┃ └1.9
┠trunk (主版本)
┃ └ project
┃ ├src
┃ ├classes
┃ └WEB-INF
┖branches (分支)
└分支
主要的開(kāi)發(fā)工作放在trunk,分支放在branches,發(fā)布版本放在tags。
存儲庫
┠項目名
┃ ├trunk:主版本
┃ ├branches:分支版本(獨立版本)
┃ └tags:標記版本,比如發(fā)行版 v 1.0/ v 2.0等等
1、項目負責人和版本管理員負責架構項目目錄結構,包括配置文件、第三方JAR 文檔
2、項目負責人分配開(kāi)發(fā)人員目錄權限,由版本管理員負責實(shí)施 ,權限分配粒度要細
3、trunk ,tags ,branches ,項目負責人、協(xié)同版本管理員構建tags 和branches
4、版本管理員負責解決開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中的有關(guān)版本問(wèn)題
5、開(kāi)發(fā)人員每次修改,或者新增、刪除、拷貝工作區對象后,應該立刻提交到版本庫,有效保持工作區與資源庫的高度一致 ,每天下班之前提交、(更新)
6、開(kāi)發(fā)人員在每次修改工作區中代碼或者文檔時(shí),首先更新該對象,可以盡量減少沖突、合并
7、保證提交到的版本庫的代碼沒(méi)有BUG以免影響開(kāi)發(fā)組 ,可以適當利用加鎖機制,減少沖突
8、項目負責人和版本管理員負責軟件的測試版,構建測試環(huán)境 ,branches由版本管理員進(jìn)行 (checkout)
9、項目負責人和版本管理員負責發(fā)布軟件的發(fā)布版,與系統部協(xié)調構建發(fā)布環(huán)境(export)
10 、版本管理員負責清理有關(guān)不需要的branches ,tags
聯(lián)系客服