CVS使用探讨
作者:网络转载 发布时间:[ 2013/2/1 16:00:30 ] 推荐标签:
3:够建模块化的工程
关于模块化,大家挂在口边也不是两天了,这里指的是项目的模块化,不是指具体的程序.
正常的项目开始具体实施之前,必定做好了系统分析和结构设计,当然,像打印"Hello World!"
这样的"项目"或许不用进行系统分析吧:P,所以也不用麻烦我们辛苦构建的cvs.
软件设计完成之后,各个模块应该也出来了,在实施之前,我们需要考虑用cvs贯彻设计结果.
cvs的模块不必细化到疯狂的程度,大致按照功能划分并且兼顾工作组可以了.同一模块必需
仅有单一工作组负责.
确定模块之后,我们来建立模块.
#su - hleil
$export CVSROOT=:pserver:hleil@192.168.0.1:/home2/cvsroot/pro1
$cvs login
$cvs co CVSROOT
假设有这样的目录结构,
pro01
libs
libs/01
libs/02
每个目录下面都有一个初始化文件init(方便import)
我们可以这样定义modules,
$vi CVSROOT/modules
pro01pro01 & libs
libs-01-d 01libs/01
libs-02 -d 02libs/02
libs-a libs-01 libs-02
:wq
$cvs commit -m "init modules"
倒入目录结构,
$cvs import -m "init checkin" pro01 init start
现在,你的三个小组可以分别工作于pro01,libs-01,libs-02,全部程序只要co pro01行了.
简单吧:P
4:克隆
构建模块
$export CVSROOT=remote
$cvs login
$cvs co CVSROOT/modules
$cvs logout
$mv CVSROOT/modules .
$rm -rf CVSROOT
$export CVSROOT=local
$cvs login
$cvs co CVSROOT/modules
$cp modules CVSROOT/modules
$cvs commit -m "clone init modules"
研究目录结构
所有的 -a 定义的模块不需要checkout
$sed "/#/d" modules > modules.tmp
$sed "/^$/d" modules.tmp > modules.tmp2
$sed s/" "*/" "/g modules.tmp2 > modules.tmp
$cat modules.tmp|sed /-a/d >mymodules
仔细研究目录结构,以便co不含有垃圾的代码
$cp mymodules co-list
编辑co-list,不需要的注释,OK
$sed "/#/d" co-list > co-list.tmp
$cut -d " " -f 1 co-list.tmp >co-list