CVS使用探討
作者:網絡轉載 發(fā)布時間:[ 2013/2/1 16:00:30 ] 推薦標簽:
3:夠建模塊化的工程
關于模塊化,大家掛在口邊也不是兩天了,這里指的是項目的模塊化,不是指具體的程序.
正常的項目開始具體實施之前,必定做好了系統(tǒng)分析和結構設計,當然,像打印"Hello World!"
這樣的"項目"或許不用進行系統(tǒng)分析吧: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