這里有一篇有關(guān)CVS的使用簡(jiǎn)介,是我以前做項(xiàng)目時(shí)為
初學(xué)者翻譯的,本著“夠用”的原則翻的,還有很多精
華沒(méi)有翻出來(lái),但作為一個(gè)入門(mén)進(jìn)階是夠了。
CVS 使用簡(jiǎn)介
============
CVS 是RCS的前端工具,它是用于多用戶(hù)并行開(kāi)發(fā)的版本控制工具,它的大特點(diǎn)是使用了“copy-modify-merge”機(jī)制而不是“lock- modify-unlock”。通過(guò)使用CVS生成一個(gè)存儲(chǔ)文件的倉(cāng)庫(kù)(repository),存儲(chǔ)在倉(cāng)庫(kù)中的每個(gè)目錄叫做模塊(module),在修改時(shí)將相應(yīng)的模塊檢出到工作目錄中(working directory)生成對(duì)應(yīng)的目錄,所有的修改都在工作目錄中完成,修改完成后再提交到倉(cāng)庫(kù)中生成新的版本號(hào),并加以保存。
1. CVS初始化
-------------
(1) 創(chuàng)建CVSROOT根目錄
編輯有關(guān)的環(huán)境變量,加入CVSROOT的定義(比如在 /etc/bashrc 文件中加入下面兩行):
CVSROOT=/usr/local/cvsroot
export CVSROOT
然后在相應(yīng)位置開(kāi)始創(chuàng)建CVSROOT
$cd /usr/local/
$mkdir cvsroot
$cvs –d /usr/local/cvsroot init
這時(shí)會(huì)產(chǎn)生/usr/local/cvsroot/CVSROOT 目錄,這下面放著有關(guān)CVS的配置文件。同時(shí)/usr/local/cvsroot/也作為文件倉(cāng)庫(kù)存放所有的文件。
(2) 創(chuàng)建開(kāi)發(fā)項(xiàng)目
如果從頭開(kāi)始一個(gè)新的項(xiàng)目,需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的目錄,并把所有要使用的文件做一個(gè)有效的組織。而如果在開(kāi)始使用源文件的目錄之前有了,則只需進(jìn)入該目錄行了。
$cd /work/tang
$ls cvstest
. .. c/
$cd cvstest
然后,可以輸入源文件目錄:
$cvs import –m “Create Source Dir” cvstest/c tang cvstest
這樣會(huì)生成 $CVSROOT/cvstest/c 目錄。 其中 -m 用來(lái)指定注釋信息,如果后面在命令行不指定注釋信息,則會(huì)啟動(dòng)缺省編輯器(vi)要求輸入注釋信息。 tang, cvstest分別標(biāo)識(shí)了廠商和發(fā)行標(biāo)識(shí)。
注意,使用import命令會(huì)把當(dāng)前目錄下的所有文件和目錄(包括子目錄)引入到文件倉(cāng)庫(kù)中指定模塊(目錄)下。
2. 命令簡(jiǎn)介
-------------
(1) 檢出源文件
cvs checkout [-r rev][-D date][-d dir][-j merg1] [-j merg2] modules
-r 檢出指定版本的模塊
-D 檢出指定日期的模塊
-d 檢出指定目錄而不是模塊
-j 合并當(dāng)前版本和指定版本
使用下面的命令會(huì)檢出剛才生成的模塊,并在當(dāng)前目錄下生成與文件倉(cāng)庫(kù)中完全一樣的目錄結(jié)構(gòu):
$cvs checkout cvstest/c
對(duì)于目錄結(jié)構(gòu)比較復(fù)雜的模塊可以在 $CVSROOT/CVSROOT/modules中加以指定:
1) $cvs checkout CVSROOT/modules
2) 在modules文件中加入下面一行:
SOURCE cvstest/c
3) 然后執(zhí)行:
$cvs commit –m “Add SOURCE”
以后可以使用下面的命令在當(dāng)前路徑下生成 cvstest/c 目錄
$cvs checkout SOURCE
在當(dāng)前路徑下生成的這個(gè)目錄被稱(chēng)為工作目錄,對(duì)源文件的所有修改都應(yīng)該在這個(gè)目錄下完成,而不允許去改動(dòng)在 文件倉(cāng)庫(kù)中$CVSROOT 目錄下的文件。
(2) 刪除、增加、重命名文件和目錄
cvs add [-k kflags][-m message] files...
-k 指定以后該文件的缺省檢出目錄
-m 對(duì)文件的描述
上述命令會(huì)加入一個(gè)新的文件到文件倉(cāng)庫(kù)里,但直到使用了提交命令它才會(huì)真正更新文件倉(cāng)庫(kù)。
cvs remove [options] files
上述命令會(huì)從文件倉(cāng)庫(kù)中刪除文件,但也要到提交之后才有作用。
例1:增加文件
$cvs checkout SOURCE
$cd cvstest/c
$touch test.c
$cvs add test.c
$cvs commit –m “add test.c”
例2:刪除文件
$cvs checkout SOURCE
$cd cvstest/c
$rm test.c
$cvs remove test.c
使用 –f 選項(xiàng)能上面兩步合做一步。