您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > cvs
CVS使用经验谈
作者:网络转载 发布时间:[ 2013/3/22 14:22:28 ] 推荐标签:

  CVS 是 Concurrent Version System(并行版本系统)的缩写,用于版本管理。在多人团队开发中的作用更加明显。CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序。这样,好象只有一个人在修改文件一样。避免了冲突。每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一 修改。这样可以做到跟踪文件变化,冲突控制等等。

  由于CVS是建立在在原先 Unix 体系里很成熟的 SCCS 和 RCS 的基础上,所以CVS多是Linux(UNIX)系统中所使用,本文中服务器端设置也是以Linux为例。

  一、CVS服务器的安装

  首先确认系统中是否安装CVS服务:
   [root@localhost /]# rpm -qa|grep cvs
cvs-1.11.2-cvshome.7x.1
   如果命令输出类似于上面的输出则说明系统已经安装有cvs,否则需要从安装光盘中安装cvs的rpm包,或者到http://www.cvshome.org下载。

  1、建立 CVSROOT

  目录,因为这里涉及到用户对CVSROOT里的文件读写的权限问题,所以比较简单的方法是建立一个组,然后再建立一个属于该组的帐户,而且以后有读写权限的用户都要属于该组。假设我们建一个组叫cvs,用户名是cvsroot。建组和用户的命令如下

#groupadd cvs
#adduser cvsroot

  生成的用户宿主目录在/home/cvsroot(根据自己的系统调整)

  2、用cvsroot 用户登陆,修改 /home/cvsroot (CVSROOT)的权限,赋与同组人有读写的权限: 

  $chmod 771 . (或者770应该也可以)

  注意:这一部分工作是按照文档说明做的,是否一定需要这样没有试验,我会在做试验后在以后版本的教程说得仔细一点。如果您有这方面的经验请提供给我,谢谢。

  3、建立CVS仓库,(仍然是 cvsroot 用户),用下面命令:

  $cvs -d /home/cvsroot init

  4、以root身份登陆,修改 /etc/inetd.conf(使用 xinetd 的系统没有此文件)和 /etc/services

  如果用的是 inetd 的系统,在 /etc/inetd.conf 里加入:
  
   cvsserver  stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver

  说明:上面的行是单独一整行,/usr/bin/cvs 应该是你的cvs版本的命令路径,请根据自己的系统调整./home/cvsroot是你建立的CVSROOT的路径,也请根据上面建立目录的部分的内容做调整。

  如果是使用 xinetd 的系统,需要在 /etc/xinetd.d/ 目录下创建文件 cvspserver(此名字可以自己定义),内容如下:

  # default: on
   # description: The cvs server sessions;

  service cvsserver
   {
   socket_type = stream
   wait = no
   user = root
   server = /usr/bin/cvs
   server_args = -f --allow-root=/cvsroot pserver
   log_on_failure += USERID
   only_from = 192.168.0.0/24
   }

  其中only_from是用来限制访问的,可以根据实际情况不要或者修改。修改该文件权限:

  # chmod 644 cvspserver

  在/etc/services里加入:

  cvsserver 2401/tcp

  说明:cvsserver 是任意的名称,但是不能和已有的服务重名,也要和上面修改 /etc/inetd.conf 那行的第一项一致。

  5、添加可以使用 CVS 服务的用户到 cvs 组:

  以 root 身份修改 /etc/group,把需要使用 CVS 的用户名加到 cvs 组里,比如我想让用户 laser 和gumpwu 能够使用 CVS 服务,那么修改以后的 /etc/group 应该有下面这样一行:

  cvs:x:105:laser,gumpwu

  在你的系统上GID可能不是105,没有关系。主要是要把laser和gumpwu用逗号分隔开写在后一个冒号后面。当然,象RedHat等分发版有类似linuxconf这样的工具的话,用工具做这件事会更简单些。

  6、重起inetd使修改生效:

  #killall -HUP inetd

  如果使用的是 xinetd 的系统:

   # /etc/rc.d/init.d/xined restart

然后察看cvs服务器是否已经运行:
[root@localhost /]# netstat -lnp|grep 2401
   tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 1041/xinetd
则说明cvs服务器已经运行。


   二、管理CVS服务器

  服务器可以用了,现在大家关心的是如何管理服务器,比如,我想让一些人有读和/或写 CVS 仓库的权限,但是不想给它系统权限怎么办呢?

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd