(本文在redhat 7.3/8.0/9.0上測(cè)試通過)
安裝cvs的rpm包后,服務(wù)器和客戶端都安裝了,首先配置服務(wù)器端:
	1.查看是否安裝cvs
	rpm -qa | grep cvs
	一般安裝在/usr/bin/cvs,如果未安裝,到www.cvshome.org下載一個(gè)新的rpm安裝即可
	2.建立cvs用戶組,便于管理cvs用戶
	groupadd cvs
	3.建立cvsroot用戶,屬于cvs組(組名必須為cvs),根目錄為/home/cvsroot,不許登陸
	useradd -g cvs -s /sbin/nologin cvsroot
	4.改變/home/cvsroot的目錄屬性
	chmod 775 /home/cvsroot
	5.初始化cvs源代碼庫(kù),此操作生成目錄/home/cvsroot/CVSROOT,其下為一些初始化文件
	cvs -d /home/cvsroot init
	6.創(chuàng)建可以登陸cvs服務(wù)的用戶及密碼,需要?jiǎng)?chuàng)建文件passwd
	vi /home/cvsroot/CVSROOT/passwd
	文件內(nèi)容如下:
	weiqiong:xxxxxx:cvsroot
	chenxu:xxxxxx:cvsroot
	此文件的意思是weiqiong和chenxu兩個(gè)用戶可以登陸cvs服務(wù)器,登陸后其權(quán)限為用戶cvsroot的權(quán)限
	注意:cvs用戶和服務(wù)器用戶是可以不一樣的
	7.xxxxxx為密碼,由以下文件生成:
	vi /home/cvsroot/passwdgen.pl
	文件內(nèi)容:
	#!/usr/bin/perl
	srand (time());
	my $randletter = "(int (rand (26)) + (int (rand (1) + .5)
	% 2 ? 65 : 97))";
	my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
	my $plaintext = shift;
	my $crypttext = crypt ($plaintext, $salt);
	print "${crypttext}
	";
	8.如果需要密碼為:123456,則敲入:
	passwdgen.pl "123456"
	回車即可得到加密密碼,用其替換passwd文件中的xxxxxx
	9.加入cvs服務(wù)(一般的redhat上缺省有cvs服務(wù),所以不用加)
	vi /etc/services
	cvspserver 2401/tcp #pserver cvs service
	cvspserver 2401/udp #pserver cvs service
	10.一般cvs服務(wù)由inted來喚起,因此需要改動(dòng).netd提供的服務(wù),如果你的redhat使用的是inetd方式,
	則在文件/etc/inetd.conf中加入如下的內(nèi)容:
	cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot
	pserver
	redhat7.3以上使用的是xinetd方式,所以在xinetd.d目錄下添加需要啟動(dòng)的服務(wù):
	cd /etc/xinetd.d
	vi cvspserver
	文件內(nèi)容:
	service cvspserver
	{
	disable = no
	flags = REUSE
	socket_type = stream
	wait = no
	user = root
	server = /usr/bin/cvs
	server_args = -f --allow-root=/home/cvsroot pserver
	log_on_failure += USERID
	}
	11.重新啟動(dòng)inetd或者xinetd:
	/etc/rc.d/init.d/xinetd restart
	12.檢查cvspserver服務(wù)是否已經(jīng)啟動(dòng)
	netstat -l |grep cvspserver
	應(yīng)該有如下結(jié)果:
	tcp 0 0 *:cvspserver *:* LISTEN
	---------------------------------------------
	以上是服務(wù)器端配置,下面是客戶端使用。為簡(jiǎn)便,本例中在本機(jī)上使用,但下列步驟適用于任何cvs客戶機(jī)。
	1.設(shè)置系統(tǒng)環(huán)境變量(設(shè)cvs服務(wù)器IP為192.168.0.2,本例中為本機(jī)IP)
	設(shè)置CVSROOT環(huán)境變量:
	修改~/.bash_profile,加入一行
	export CVSROOT=:pserver:weiqiong@192.168.0.2:/home/cvsroot
	然后運(yùn)行命令 . ~/.bash_profile。
	2.使用:
	cvs login
	敲入命令回車后提示輸入weiqiong的密碼,你按照自己設(shè)置的密碼輸入,如果沒有什么錯(cuò)誤信息出現(xiàn)是成功了。
	3.導(dǎo)入舊的工程:
	假定工程在/root/old/proj1/目錄中,則
	cd /root/old/proj1
	cvs import -m "new project proj1" proj1 vendortag
	releasetag
	回車,系統(tǒng)會(huì)提示工程建立完畢。
	4.從cvs服務(wù)器上導(dǎo)出cvs工程:
	假定要將工程放在/root/new/目錄下,則
	cd /root/new
	cvs co proj1
	回車,系統(tǒng)會(huì)提示工程順利導(dǎo)出,出現(xiàn)目錄/root/new/proj1,里面的文件是你要修改的文件。
	5.提交文件:
	修改/root/new/proj1/a.c后,需要提交修改
	cd /root/new/proj1
	cvs ci -m "comments here" a.c
	回車,系統(tǒng)會(huì)提示文件順利提交。
	6.取回新版本文件:
	如果自己的/root/new/proj1/a.c取回后,沒有修改,但是服務(wù)器端的a.c被他人修改了,則需要更新本地拷貝
	cd /root/new/proj1
	cvs update a.c
	回車,系統(tǒng)會(huì)提示文件順利更新。
	7.查看文件當(dāng)前狀態(tài):
	cd /root/new/proj1
	cvs status a.c
	回車,系統(tǒng)會(huì)顯示文件的當(dāng)前狀態(tài)。
	8.比較文件的新舊版本變化:
	如果要比較1.2版和1.3版的區(qū)別:
	cd /root/new/proj1
	cvs diff -r1.2 -r1.3 a.c
	回車,系統(tǒng)會(huì)顯示文件的區(qū)別。
	如果要比較1.2版和當(dāng)前版本的區(qū)別:
	cd /root/new/proj1
	cvs diff -r1.2 a.c
	回車,系統(tǒng)會(huì)顯示文件的區(qū)別。
	9.查看文件被修改的記錄:
	cd /root/new/proj1
	cvs log a.c
	回車,系統(tǒng)會(huì)顯示所有提交過程中-m選項(xiàng)所提交的文字。
	10.注意:
	cvs服務(wù)器上的用戶(本文中是cvsroot用戶)必須是cvs組的才能用,如果還是報(bào)repository找不到,在客戶端用戶的home目錄下touch文件.cvspass,文件是空的,但是當(dāng)你login一次服務(wù)器后自動(dòng)有內(nèi)容了。