3)重启xinetd服务,使配置生效
重启xinetd
debian:/etc/xinetd.d# /etc/init.d/xinetd restart
Stopping internet superserver: xinetd.
Starting internet superserver: xinetd.
确定cvspserver是否启动
debian:/etc/xinetd.d# netstat -l | grep cvspserver
tcp 0 0 *:cvspserver *:* LISTEN
至此,CVS服务器配置全部完成,下面进行测试。
二.客户端测试
客户端的测试包括本地测试和远程测试。
1.本地测试上面我们已经用root用户checkout测试过了。
具体方法就是:
debian:/home# export CVSROOT=/home/cvsroot/
debian:/home# cvs login
如果没有提示出错的话,就代表成功了。
但如果在pserver启动以后,再用同种方法进行本地测试的话,就有问题了,提示如下:
debian:/home# cvs login
cvs login: can only use `login' command with the 'pserver' method
cvs [login aborted]: CVSROOT: /home/cvsroot/
提示的意思是说,现在这能使用通过pserver验证的方式登录服务器了。那么,在配置完pserver服务器后,本地和远程登录的方法就一样了,都要通过pserver验证。下面介绍远程登录的方法,同样适用于本地登录。
2.远程测试的方法如下:
1)CVS服务器端IP:192.168.1.248。使用另外一台主机,同样是Debian GNU/Linux,同样保证安装了CVS,IP为:192.168.1.244。 通过Windows下WinCVS同样可以登录。
客户端主机使用非root用户,我的用户名为david.
首先建立环境变量CVSROOT,以用户cvSUSEr1登录:
david@debian:~$ export CVSROOT=:pserver:cvsuser1@192.168.1.248:/home/cvsroot
然后登录
david@debian:~$ cvs login
如果没有错误提示,则代表成功登录CVS服务器。
但我这里出现了一个提示:
david@debian:~$ cvs login
Logging in to: :pserver:cvsuser1@192.168.1.248:2401/home/cvsroot
CVS password:
cvs login: CVS password file /home/david/.cvspass does not exist - creating a new file
该问题就是在客户端登录时要在HOME目录下有个.cvspass的文件即可。因此,解决方法就是在/home/david/下:
david@debian:~$ touch .cvspass
再次登录就没有提示了。本地登录也可以采用这种方法,或者将服务器的IP地址改为localhost.
2)检出模块
我们上面已经建立了一个仓库了,usbprj.我们在客户端将该模块checkout:
david@debian:~$ cvs checkout usbprj
cvs checkout: Updating usbprj
U usbprj/Makefile
U usbprj/Module.symvers
U usbprj/test.c
U usbprj/usb-skeleton.c
则在当前目录下生成目录usbprj.
进入该目录,可以对该目录执行文件的修改,添加,然后可以用commit命令对修改后的进行提交。具体CVS的操作,可以看CVS的手册,这里不再多说。
还有一个问题,我们这里CVS服务器有两个用户,cvsuser1和cvsuser2.如果需要对这两个用户设置不同的权限。可以在服务器端/home/cvsroot/CVSROOT/下建立两个文件,readers和writers。文件中每一行可写一个用户名。readers里面的用户具有只读权限,writers里面的用户具有可读可写权限。