第一部分 CVS服務(wù)器的配置(以1.10版)
1、 CVS簡述與CVS服務(wù)器的安裝:
CVS是目前比較流行與的版本管理與控制工具,它深受大多數(shù)開發(fā)人員與系統(tǒng)管理的喜愛,同時也是用來管理其它日常文檔(如word工作文檔之類)的一個強(qiáng)有力的工具。這一部分將對CVS服務(wù)器的安裝、配置與使用方法進(jìn)行簡單、扼要的介紹,以幫助大家盡快的使用CVS來進(jìn)行一些版本的管理與控制工作。
2、 CVS服務(wù)器的安裝
CVS服務(wù)器版可以從網(wǎng)上的很多地方下載到,也可以到CVS的官方網(wǎng)站進(jìn)行下載。根據(jù)你所使用的系統(tǒng),下載相應(yīng)的版本,然后進(jìn)行安裝。因為當(dāng)前大部分人是在Linux下使用CVS服務(wù)器進(jìn)行版本管理,并且Redhat Linux是目前流行的一個Linux發(fā)行版之一,所以本文將主要基于Redhat Linux進(jìn)行介紹。首先下載CVS服務(wù)器的rpm包,當(dāng)然也可以下載其它方式的包如源程序包,這也是Linux的一個優(yōu)點(diǎn)之一。然后采用以下命令進(jìn)行安裝:
rpm -ivh cvs-1.10.8-3.i386.rpm
3、配置/etc/services文件:
安裝完之后的第一件事是要配置CVS服務(wù)器的配置文件,使其能正常的工作。首先在services文件中添加cvspserver,使其成為Linux的一種服務(wù)也是cvs服務(wù)器例程的入口,配置如下:
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
4、配置xinetd,用xinetd來啟動CVS服務(wù)器:
進(jìn)入到/etc/xinetd.d/目錄,然后編輯一個文本文件,名字一定要與/etc/services中的入口名字cvspserver一致,所以這里用cvspserver作為文件名,文件的內(nèi)容如下所示:
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
env = HOME=
server = /usr/bin/cvs
server_args = -f --allow -root=/home/cvsroot pserver //指定認(rèn)證方式為pserver,注意:-f
}
注意:a、service后面的名稱一定要和你在/etc/service文件中的cvs服務(wù)名稱一樣;
b、env = HOME=這一行的目的是為了解決在執(zhí)行一些cvs操作時產(chǎn)生的讀取/root/.cvsignore文件的錯誤,上面env那行的意思是在運(yùn)行cvs服務(wù)的時候?qū)h(huán)境變量HOME置空,這樣雖然執(zhí)行cvs的用戶是root,但是由于沒有了HOME這個環(huán)境變量,所以cvs不會在去讀取/root/.cvsignore文件了。
5、配置CVS用戶與cvsroot的屬主與屬組:
首先建立一個用戶組cvs,可以使用groupadd或者addgroup命名,也可以直接編輯/etc/group文件添加這個組,然后添加一個用戶cvsroot, 然后修改/etc/passwd文件使cvsroot用戶的缺省組是cvs組,而不是cvsroot組(也是修改)。在/home目錄下建立cvsroot目錄(也可以在其它你喜歡的目錄下建),然后修改/home/cvsroot的屬主及屬性:
#chown cvsroot.cvs /home/cvsroot
#chmod 771 /home/cvsroot
6、 vs進(jìn)行初始化:
安裝完CVS服務(wù)器之后的另一件重要的事情是要初始化CVS服務(wù)器的根目錄,以后創(chuàng)建的CVS項目都將建立在這個目錄下,采用的命令如下:
。vs -d /home/cvsroot init
這樣目錄/home/cvsroot成為CVS服務(wù)器的根目錄,以后創(chuàng)建的目錄都將默認(rèn)的存放在這個目錄下。
7、登錄cvs服務(wù)器(在Linux或其它Unix系統(tǒng)下進(jìn)行登錄的情況):
a、如果是遠(yuǎn)程登錄,采用以下語法:
#cvs -d :pserver:cvsroot@host:/home/cvsroot login
CVS password://輸入用戶cvsroot的口令;
如果沒有出現(xiàn)其它的任何提示表示登錄成功了,否則要根據(jù)提示進(jìn)行相應(yīng)的修改。 下面對登錄命令的語法進(jìn)行說明:
其中,:pserver表示采用pserver方式進(jìn)行用戶登錄認(rèn)證,一般的CVS服務(wù)器都采用這
種方式,當(dāng)然也可以采用其它方式,具體參考相應(yīng)的資料;
:cvsroot表示要登錄的用戶名,只要是cvs組的成員都可以,如:cather;
@host表示要登錄的服務(wù)器,可以是DNS名,也可以是IP地址,如:10.104.1.204;
:/home/cvsroot表示CVS在服務(wù)器上的目錄,也可以是其它目錄(由第6中你所
指定的用來做init初始化的目錄決定);
提示:也可以把export CVSROOT=:pserver:jchuang@192.168.0.8:/home/cvsroot這一句直
接寫在用戶的初始化文件中(如:.bash_profile),這樣用戶每次登錄時,只需輸入:
。vs login
然后輸入相應(yīng)的口令可以登錄到cvs服務(wù)器上。
b、如果是本地登錄,可以直接把export CVSROOT=/home/cvsroot這一句寫在用戶的初
始化文件如:.bash_profile中;然后直接
8、向CVS添加新的項目模塊
一般我們都已經(jīng)有一個或多個項目了,這樣我們可以用下面步驟生成一個新的CVS項目。將一個工程文件置于CVs中進(jìn)行版本控制,在CVS 術(shù)語中稱作導(dǎo)入(import)。從名字上可以看出,在導(dǎo)入前需要為此作些準(zhǔn)備工作。
輸入操作的基本要求是有個"干凈"的目錄結(jié)構(gòu)。"干凈"的意思是不需要版本控制的文件都被移走了(如編譯生成的文件,備份文件等等)。如果工程已經(jīng)開始一段時間了,這顯得很重要。在目錄中也許有些是不打算將其置于版本控制下的文件,但是又想將他們放在這里,這種情況下,你要在輸入之前將它們移走,然后再移回來。
注意的是CVS 認(rèn)為空目錄是不存在的。如果想增加一個既不包含文件又不包含子目錄的目錄,需要在其下創(chuàng)建一個啞文件。建議你創(chuàng)建一個名為 README.txt 的文件,其內(nèi)容為對目錄的簡要說明。
進(jìn)入到已有項目的目錄,比如叫 cvstest:
$cd cvstest
運(yùn)行命令將項目文件導(dǎo)入到cvs倉庫中:
$cvs import -m "this is a cvstest project" cvstest v_0_0_1 start
說明:import 是cvs的命令之一,表示向cvs倉庫輸入項目文件.
-m參數(shù)后面的字串是描述文本,對項目進(jìn)行描述,如果不加 -m 參數(shù),那么cvs會自動運(yùn)行一個編輯器(一般是vi,但是可以通過修改環(huán)境變量EDITOR來改成你喜歡用的編輯器)讓你輸入信息,cvstest 是項目名稱(實(shí)際上是倉庫名,在CVS服務(wù)器上會存儲在以這個名字命名的倉庫里)
v_0_0_1是這個分支的總標(biāo)記.沒啥用(或曰不常用)
start 是每次 import 標(biāo)識文件的輸入層次的標(biāo)記,沒啥用。
這樣我們在用戶指定進(jìn)行初始化的目錄/home/cvsroot下建立了一個名字叫cvstest的CVS模塊了,然后,我們可以把這個測試項目的文件刪除,試驗如何從倉庫獲取文件這會在后面的客戶端文章進(jìn)行說明。
(注:本小節(jié)主要引用自http://linuxaid.com.cn何偉平的“CVS服務(wù)器快速指南”)