ERP笔记2-善用SVN对系统环境进行配置和组织
2010-09-01 19:15
239 查看
在上一篇文章中,我介绍SVN是一个很好的传输工具,这个功能是基于SVN配置管理的强大功能实现的。SVN能做到的不仅仅是传输,在整个项目周期中,SVN可以有效的对各种文档、源代码进行组织和配置。
下面我说明一下SVN在系统环境(开发环境DEV-测试环境QAS-培训环境TRN-生产环境PRD)上的使用。
目录结构:
![](http://hi.csdn.net/attachment/201009/1/0_1283339660fDZ8.gif)
svn的目录是按英文字母排序,这个跟我们习惯上的DEV-QAS-TRN-PRD项目顺序略有不同。
SVN的目录有一些约定俗成的结构,一般的,trunk存放当前活跃的开发主干;branches存放开发分支;tags存放里程碑(我这里叫baselines 基线),另外加上docs存放各种文档。
在中铁集团ERP开发中,我预想的大致流程是这样的:首先大家在trunk中进行开发,达到测试条件后(例如完成一个task)将trunk合并到QAS的trunk里,由测试人员进行测试,一直反复迭代一直到达某个里程碑/基线(如财务模块完成)。冻结,将trunk复制到baselines下。
一直等到整体完工,合并DEV的trunk到QAS的trunk里做集成测试。测试通过后,再合并到TRN的trunk。如果有后续开发,那么可将trunk复制到baselines,然后再从baselines合并到TRN的trunk。
PRD的合并和发布基本同TRN。
SVN服务器放外网比较合适,这样培训人员去培训时,只需要连上SVN服务器,将TRN目录下的trunk更新下来即可。
trunk存放源代码,是所有人的开发主目录。提交到trunk中的代码要求没有bug,至少也应该是在本机能够编译通过。可以适当利用加锁机制,减少冲突。另外开发人员应该每天下班前将自己代码提交。
必须先更新再提交,这是为了防止修改失效。例如A、B两开发人员均有a.txt文件,A删除了a.txt,提交到版本库,这时版本库中已经不存在a.txt;B提交的时候,如果不先更新就提交,那么B的a.txt就会提交到版本库里,导致A的删除无效,如果B先更新,B本机的a.txt就会删除,再提交就不会出现这个问题。
branches存放项目分支。本项目是从头开发一个ERP,这个目录并无必要。如果我们是在一套ERP的基础上同时进行多个项目,例如 思念食品ERP,河南宇通ERP,就可以在trunk放基础ERP代码,在branches分别存放每个项目的代码。在branches中的修改,如果比较好,可合并到trunk中,同样,trunk的修改也可合并到branches里。
baselines存放里程碑,或者叫项目快照,这个目录也可以称为tags、release等等。它存放的是达到里程碑的不可修改的静态版本。对于已经成熟的产品,比如windows,可以存放windows 95,windows98,windows2000等等。我们开发中的产品,这里可以存放各里程碑时候的源代码,例如原型、财务模块完成等等。它跟branches的区别就是它是不可修改的。
baselines的主要用处是针对项目管理。基线就是需要客户确认的里程碑。它一旦建立,就意味着基线纳入的需求已经 经用户确认无误,以后一旦发生变化,就要走需求变更流程。
baselines还有一些其他用处。例如要基于一个里程碑对客户或者Boss做演示,trunk每天都在变化,不能因为要做演示就将trunk停止更新,这时就可以将该里程碑复制到baselines。
当需要进行测试时,由配置管理员将当前代码从DEV trunk复制到QAS trunk,然后由测试人员进行测试。不同的测试一般对应着不同的设计,以后会详细说这个问题。
简单的测试,如交叉测试代码走查,下班之前半个小时,开发人员互相走一下对方的代码,在DEV的trunk甚至在开发人员的计算机上就可以进行。
单元测试、集成测试、系统测试以及用户接受测试,就可以放到QAS trunk中进行。
trunk存放程序的代码。这里的代码应该是经QAS测试无误后从DEV trunk复制过来的。
PRD trunk存放的代码和TRN trunk代码是一致的。两者不同的地方在于数据不同。TRN的数据是测试数据,接近于实际数据,PRD的数据一定要是实际生产数据。
PRD环境的构建,意味着客户已经开始上线实施了,此时PRD中trunk的改变要谨慎,复制授权要缩小。
下面我说明一下SVN在系统环境(开发环境DEV-测试环境QAS-培训环境TRN-生产环境PRD)上的使用。
目录结构:
![](http://hi.csdn.net/attachment/201009/1/0_1283339660fDZ8.gif)
svn的目录是按英文字母排序,这个跟我们习惯上的DEV-QAS-TRN-PRD项目顺序略有不同。
SVN的目录有一些约定俗成的结构,一般的,trunk存放当前活跃的开发主干;branches存放开发分支;tags存放里程碑(我这里叫baselines 基线),另外加上docs存放各种文档。
在中铁集团ERP开发中,我预想的大致流程是这样的:首先大家在trunk中进行开发,达到测试条件后(例如完成一个task)将trunk合并到QAS的trunk里,由测试人员进行测试,一直反复迭代一直到达某个里程碑/基线(如财务模块完成)。冻结,将trunk复制到baselines下。
一直等到整体完工,合并DEV的trunk到QAS的trunk里做集成测试。测试通过后,再合并到TRN的trunk。如果有后续开发,那么可将trunk复制到baselines,然后再从baselines合并到TRN的trunk。
PRD的合并和发布基本同TRN。
SVN服务器放外网比较合适,这样培训人员去培训时,只需要连上SVN服务器,将TRN目录下的trunk更新下来即可。
开发环境 DEV
开发环境中docs存放设计、需求、功能说明书等文档。trunk存放源代码,是所有人的开发主目录。提交到trunk中的代码要求没有bug,至少也应该是在本机能够编译通过。可以适当利用加锁机制,减少冲突。另外开发人员应该每天下班前将自己代码提交。
必须先更新再提交,这是为了防止修改失效。例如A、B两开发人员均有a.txt文件,A删除了a.txt,提交到版本库,这时版本库中已经不存在a.txt;B提交的时候,如果不先更新就提交,那么B的a.txt就会提交到版本库里,导致A的删除无效,如果B先更新,B本机的a.txt就会删除,再提交就不会出现这个问题。
branches存放项目分支。本项目是从头开发一个ERP,这个目录并无必要。如果我们是在一套ERP的基础上同时进行多个项目,例如 思念食品ERP,河南宇通ERP,就可以在trunk放基础ERP代码,在branches分别存放每个项目的代码。在branches中的修改,如果比较好,可合并到trunk中,同样,trunk的修改也可合并到branches里。
baselines存放里程碑,或者叫项目快照,这个目录也可以称为tags、release等等。它存放的是达到里程碑的不可修改的静态版本。对于已经成熟的产品,比如windows,可以存放windows 95,windows98,windows2000等等。我们开发中的产品,这里可以存放各里程碑时候的源代码,例如原型、财务模块完成等等。它跟branches的区别就是它是不可修改的。
baselines的主要用处是针对项目管理。基线就是需要客户确认的里程碑。它一旦建立,就意味着基线纳入的需求已经 经用户确认无误,以后一旦发生变化,就要走需求变更流程。
baselines还有一些其他用处。例如要基于一个里程碑对客户或者Boss做演示,trunk每天都在变化,不能因为要做演示就将trunk停止更新,这时就可以将该里程碑复制到baselines。
测试环境 QAS
docs存放测试用例等各类测试文档。当需要进行测试时,由配置管理员将当前代码从DEV trunk复制到QAS trunk,然后由测试人员进行测试。不同的测试一般对应着不同的设计,以后会详细说这个问题。
简单的测试,如交叉测试代码走查,下班之前半个小时,开发人员互相走一下对方的代码,在DEV的trunk甚至在开发人员的计算机上就可以进行。
单元测试、集成测试、系统测试以及用户接受测试,就可以放到QAS trunk中进行。
培训环境 TRN
docs存放培训ppt等。trunk存放程序的代码。这里的代码应该是经QAS测试无误后从DEV trunk复制过来的。
生产环境 PRD
docs存放用户使用说明书等。PRD trunk存放的代码和TRN trunk代码是一致的。两者不同的地方在于数据不同。TRN的数据是测试数据,接近于实际数据,PRD的数据一定要是实际生产数据。
PRD环境的构建,意味着客户已经开始上线实施了,此时PRD中trunk的改变要谨慎,复制授权要缩小。
相关文章推荐
- 关于全志A20的Ubuntu12.04 64位系统下环境配置及编译过程笔记
- Ubuntu安装后系统环境配置的笔记
- 学习笔记二 : 系统环境配置
- 系统及用户的bash环境配置 学习笔记
- 日志系统参数根据环境参数进行个性化配置
- 关于全志A20的Ubuntu12.04 64位系统下环境配置及编译过程笔记【转】
- 新装系统(CentOS7.4)环境初始化配置笔记
- LINUX系统学习笔记管道符和作业控制 ,shell变量 , 环境变量配置文件
- ERP笔记1-系统环境
- 安装Tomcat、JDK时候的系统配置环境变量
- [转]win系统下nodejs安装及环境配置
- java环境配置:svn+maven+java
- java环境配置:svn+maven+java
- Go语言Windows系统开发环境配置
- lua 在 windows 系统的环境配置
- nodejs笔记五--MongoDB基本环境配置及增删改查;
- Window 10 系统 JAVA 开发环境配置
- windows 2008 R2系统下搭建php项目运行环境步骤,仅为自己学习笔记
- 红帽安装oracle 10g系统环境配置脚本
- mac系统下配置aapt环境变量