(本文在redhat 7.3/8.0/9.0上測試通過)
安裝cvs的rpm包后,服務(wù)器和客戶端都安裝了,首先配置服務(wù)器端:
1.查看是否安裝cvs
rpm -qa | grep cvs
一般安裝在/usr/bin/cvs,如果未安裝,到www.cvshome.org下載一個新的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源代碼庫,此操作生成目錄/home/cvsroot/CVSROOT,其下為一些初始化文件
cvs -d /home/cvsroot init
6.創(chuàng)建可以登陸cvs服務(wù)的用戶及密碼,需要創(chuàng)建文件passwd
vi /home/cvsroot/CVSROOT/passwd
文件內(nèi)容如下:
weiqiong:xxxxxx:cvsroot
chenxu:xxxxxx:cvsroot
此文件的意思是weiqiong和chenxu兩個用戶可以登陸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來喚起,因此需要改動.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目錄下添加需要啟動的服務(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.重新啟動inetd或者xinetd:
/etc/rc.d/init.d/xinetd restart
12.檢查cvspserver服務(wù)是否已經(jīng)啟動
netstat -l |grep cvspserver
應(yīng)該有如下結(jié)果:
tcp 0 0 *:cvspserver *:* LISTEN
---------------------------------------------
以上是服務(wù)器端配置,下面是客戶端使用。為簡便,本例中在本機上使用,但下列步驟適用于任何cvs客戶機。
1.設(shè)置系統(tǒng)環(huán)境變量(設(shè)cvs服務(wù)器IP為192.168.0.2,本例中為本機IP)
設(shè)置CVSROOT環(huán)境變量:
修改~/.bash_profile,加入一行
export CVSROOT=:pserver:weiqiong@192.168.0.2:/home/cvsroot
然后運行命令 . ~/.bash_profile。
2.使用:
cvs login
敲入命令回車后提示輸入weiqiong的密碼,你按照自己設(shè)置的密碼輸入,如果沒有什么錯誤信息出現(xiàn)是成功了。
3.導(dǎo)入舊的工程:
假定工程在/root/old/proj1/目錄中,則
cd /root/old/proj1
cvs import -m "new project proj1" proj1 vendortag
releasetag
回車,系統(tǒng)會提示工程建立完畢。
4.從cvs服務(wù)器上導(dǎo)出cvs工程:
假定要將工程放在/root/new/目錄下,則
cd /root/new
cvs co proj1
回車,系統(tǒng)會提示工程順利導(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)會提示文件順利提交。
6.取回新版本文件:
如果自己的/root/new/proj1/a.c取回后,沒有修改,但是服務(wù)器端的a.c被他人修改了,則需要更新本地拷貝
cd /root/new/proj1
cvs update a.c
回車,系統(tǒng)會提示文件順利更新。
7.查看文件當(dāng)前狀態(tài):
cd /root/new/proj1
cvs status a.c
回車,系統(tǒng)會顯示文件的當(dāng)前狀態(tài)。
8.比較文件的新舊版本變化:
如果要比較1.2版和1.3版的區(qū)別:
cd /root/new/proj1
cvs diff -r1.2 -r1.3 a.c
回車,系統(tǒng)會顯示文件的區(qū)別。
如果要比較1.2版和當(dāng)前版本的區(qū)別:
cd /root/new/proj1
cvs diff -r1.2 a.c
回車,系統(tǒng)會顯示文件的區(qū)別。
9.查看文件被修改的記錄:
cd /root/new/proj1
cvs log a.c
回車,系統(tǒng)會顯示所有提交過程中-m選項所提交的文字。
10.注意:
cvs服務(wù)器上的用戶(本文中是cvsroot用戶)必須是cvs組的才能用,如果還是報repository找不到,在客戶端用戶的home目錄下touch文件.cvspass,文件是空的,但是當(dāng)你login一次服務(wù)器后自動有內(nèi)容了。