CVS使用探討
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/2/1 16:00:30 ] 推薦標(biāo)簽:
3:夠建模塊化的工程
關(guān)于模塊化,大家掛在口邊也不是兩天了,這里指的是項(xiàng)目的模塊化,不是指具體的程序.
正常的項(xiàng)目開(kāi)始具體實(shí)施之前,必定做好了系統(tǒng)分析和結(jié)構(gòu)設(shè)計(jì),當(dāng)然,像打印"Hello World!"
這樣的"項(xiàng)目"或許不用進(jìn)行系統(tǒng)分析吧:P,所以也不用麻煩我們辛苦構(gòu)建的cvs.
軟件設(shè)計(jì)完成之后,各個(gè)模塊應(yīng)該也出來(lái)了,在實(shí)施之前,我們需要考慮用cvs貫徹設(shè)計(jì)結(jié)果.
cvs的模塊不必細(xì)化到瘋狂的程度,大致按照功能劃分并且兼顧工作組可以了.同一模塊必需
僅有單一工作組負(fù)責(zé).
確定模塊之后,我們來(lái)建立模塊.
#su - hleil
$export CVSROOT=:pserver:hleil@192.168.0.1:/home2/cvsroot/pro1
$cvs login
$cvs co CVSROOT
假設(shè)有這樣的目錄結(jié)構(gòu),
pro01
libs
libs/01
libs/02
每個(gè)目錄下面都有一個(gè)初始化文件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"
倒入目錄結(jié)構(gòu),
$cvs import -m "init checkin" pro01 init start
現(xiàn)在,你的三個(gè)小組可以分別工作于pro01,libs-01,libs-02,全部程序只要co pro01行了.
簡(jiǎn)單吧:P
4:克隆
構(gòu)建模塊
$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"
研究目錄結(jié)構(gòu)
所有的 -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
仔細(xì)研究目錄結(jié)構(gòu),以便co不含有垃圾的代碼
$cp mymodules co-list
編輯co-list,不需要的注釋?zhuān)琌K
$sed "/#/d" co-list > co-list.tmp
$cut -d " " -f 1 co-list.tmp >co-list