ERP笔记2-善用SVN对系统环境进行配置和组织

在上一篇文章中,我介绍SVN是一个很好的传输工具,这个功能是基于SVN配置管理的强大功能实现的。SVN能做到的不仅仅是传输,在整个项目周期中,SVN可以有效的对各种文档、源代码进行组织和配置。

下面我说明一下SVN在系统环境(开发环境DEV-测试环境QAS-培训环境TRN-生产环境PRD)上的使用。

目录结构:


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的改变要谨慎,复制授权要缩小。

posted @ 2010-09-14 11:37  夏夜的二进制旅行  阅读(723)  评论(1编辑  收藏  举报