CVS服务器建立和权限配置方法

类别:软件工程 点击:0 评论:0 推荐:

CVS介绍

CVS代表协作版本系统,这是一个将一组文件放在层次目录树中以保持同步的系统。人们可以从 CVS 服务器上更新他们的本地层次树副本,并将修改的结果或新文件发回;或者删除旧文件。
CVS 基于客户端/服务器的行为使得其可容纳多用户,构成网络也很方便。这一特性使得 CVS 成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。

 

服务器

1。初始化cvs服务器环境

#cvs –d /tmp/source init

命令在/usr/local/sourc 下建立了cvsroot目录,里面是初始化的cvs服务器配置文件。

2。把cvs服务器放到xinetd中

#vi /etc/xinetd.d/cvspserver 建立服务文件并添加内容

server cvspserver

{

         flags          = REUSE

         socket_type       = stream

         wait                     = no

         user                    = root

         protocol             = tcp

         server                 = /usr/bin/cvs

         server_args       = -f –allow-root=/tmp/source pserver

         disable               = no

}

其中server_args一个参数指定了源代码路径,一个指定了服务器使用密码认证方式.

然后确保/etc/services文件中有以下两行

cvspserver 2401/tcp
cvspserver 2401/udp

最后重启xinetd服务。

 

测试

假设cvs服务器在192.168.0.192上,系统上有一个用户cvs。登陆另一台linux机器,执行下列命令可以完成测试。

$export CVSROOT=:pserver:[email protected]:2401/tmp/source

$cvs login

输入密码,没有错误提示表示登陆成功。

$cvs logout登出

 

用户认证

cvs服务器有一套自己的用户认证机制,此方法使用了系统上用户直接作为cvs服务器用户,采用linux组、用户权限实现这样的功能。

例如,在linux系统上有两个开发组a、b,分别有用户a-user1,a-user2,b-user1,b-user2。

模块a-source,希望a组成员都可以读写,b组没有任何权限,使用以下命令:

#chown –R a-user1 a-source

#chgrp –R a a-source

#chmod –R 770 a-source

如果希望a-source,只有a-user1可以写,同组其他用户可以读,b组没有任何权限,把chmod命令改成
-R 750即可。

 

 

说明

cvs中默认一个用户checkout代码时候,会在当前模块下生成一个锁文件,如果这个用户对当前模块没有写权限,读是不可能的。配合上面的权限设置,必须改以下cvs服务器配置。改成不在当前模块目录下生长锁文件,把锁文件集中到一个所有用户都有读写权限的目录。修改配置文件CVSROOT/config

#Put CVS lock files in this directory rather than directly in the repository.

#LockDir=/var/lock/cvs

把LockDir设上就可以了。

 

系统建立多个源代码库

1。使用一个不同路径

2。/etc/xinetd.d目录下建立一个新的任务配置文件,如cvspserver1,文件中第一行server名称一定要区分。如改为server cvspserver1,server_args做相应变动。还要在/etc/services文件中,加入新的服务器端口,如cvspserver1 2402/tcp。重启xinetd即可。

 

CVS 的使用流程

1。登入 (login),只需做一次。需要密码认证,除非是允许匿名登入,否则都要输入 CVS Server 管理者配给您的密码。

2。取出(checkout)整份专案(类似档案下载)。此时,您的硬碟中会有一份专案的原始码目录,我们称之为工作目录。

3。依您的程式意图,修改某一支程式。

4。查询程式的在库状态(status)。 (3、4这二个动作可互调或合并操作)

5。视在库状态,比对二者的差异(diff),调整修改的程式(是否和他人修改的部份发生冲突,若无冲突,那就十分单纯,可在修改完之後,直接存入(commit/ci)档案库(repository)中)

6。若有冲突,在 mailling list 中,和他人讨论,取得协调。

7。将修改好的档案 commit 存入 CVS 档案柜 (俗称 checkin,类似档案上传),请务必在程式码注解中,详述您的意图。

8。透过 mailling list 说明您的想法,和大家讨论。

9。每经过一段时日,应查询在库状态,并更新您的工作目录(update)。

 

本文地址:http://com.8s8s.com/it/it34403.htm