linux下cvs服务器端配置/客户端使用

 

 

安装cvs的rpm包后,服务器和客户端就都安装了,首先配置服务器端:


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.创建可以登陆cvs服务的用户及密码,需要创建文件passwd

vi /home/cvsroot/CVSROOT/passwd

文件内容如下:

weiqiong:xxxxxx:cvsroot

chenxu:xxxxxx:cvsroot

此文件的意思是weiqiong和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限

注意:cvs用户和服务器用户是可以不一样的


7.xxxxxx为密码,由以下文件生成:

vi /home/cvsroot/passwdgen.pl

文件内容:

#!/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,则敲入:

/home/cvsroot/passwdgen.pl "123456" #该命令必须用绝对路径

回车即可得到加密密码,用其替换passwd文件中的xxxxxx


9.加入cvs服务(一般的redhat上缺省就有cvs服务,所以不用加)

vi /etc/services

cvspserver 2401/tcp #pserver cvs service

cvspserver 2401/udp #pserver cvs service


10.一般cvs服务由inted来唤起,因此需要改动inetd提供的服务,如果你的redhat使用的是inetd方式,

则在文件/etc/inetd.conf中加入如下的内容:

cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver


redhat7.3 以上

cd /etc/xinetd.d

vi cvspserver

文件内容:

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 
} 
<p>11.重新启动inetd或者xinetd: 
#service xinetd restart


12.检查cvspserver服务是否已经启动

netstat -l | grep cvspserver

应该有如下结果:

tcp 0 0 *:cvspserver *:* LISTEN


---------------------------------------------

以上是服务器端配置,( linux 需要对外开放 2401端口)



下面是客户端使用 (Linux 的客户端 )


为简便 ,本例中就在本机上使用,但下列步骤适用于任何cvs客户机。

1.设置系统环境变量(设cvs服务器IP为192.168.0.2,本例中为本机IP)

设置CVSROOT环境变量:

修改~/.bash_profile,加入一行

export CVSROOT=:pserver:weiqiong@192.168.0.2:/home/cvsroot

然后运行命令 . ~/.bash_profile。


2.使用:

cvs login

敲入命令回车后提示输入weiqiong的密码,你按照自己设置的密码输入 ,如果没有什么错误信息出现就是成功了。


3.导入旧的工程:

假定工程在/root/old/proj1/目录中,则

cd /root/old/proj1

cvs import -m "new project proj1" proj1 vendortag releasetag

回车,系统会提示工程建立完毕。


4.从cvs服务器上导出cvs工程:

假定要将工程放在/root/new/目录下,则

cd /root/new

cvs co proj1

回车,系统会提示工程顺利导出,出现目录/root/new/proj1,里面的文件就是你要修改的文件。


5.提交文件:

修改/root/new/proj1/a.c后,需要提交修改

cd /root/new/proj1

cvs ci -m "comments here" a.c

回车,系统会提示文件顺利提交。


6.取回新版本文件:

如果自己的/root/new/proj1/a.c取回后,没有修改,但是服务器端的a.c被他人修改了,则需要更新本地拷贝

cd /root/new/proj1

cvs update a.c

回车,系统会提示文件顺利更新。


7.查看文件当前状态:

cd /root/new/proj1

cvs status a.c

回车,系统会显示文件的当前状态。


8.比较文件的新旧版本变化:

如果要比较1.2版和1.3版的区别:

cd /root/new/proj1

cvs diff -r1.2 -r1.3 a.c

回车,系统会显示文件的区别。

如果要比较1.2版和当前版本的区别:

cd /root/new/proj1

cvs diff -r1.2 a.c

回车,系统会显示文件的区别。


9.查看文件被修改的记录:

cd /root/new/proj1

cvs log a.c

回车,系统会显示所有提交过程中-m选项所提交的文字。


10.注意:

cvs服务器上的用户(本文中是cvsroot用户)必须是cvs组的才能用,如果还是报repository找不到,在客户端用户的home目录下touch文件.cvspass,文件是空的,但是当你login一次服务器后自动就有内容了。