http://bbscs.laoer.com/read.bbscs?bid=10&id=3862&page=7
曾经写过一篇关于CVS配置的文章,后来时间长了,不用了,自己都忘记了,再配置总是出错,后来我仔细研究了一下,终于配制好了,现将配置方法总结一下。
以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
#useradd -g cvs -G cvs -d /home/cvsroot cvsroot
生成的用户宿主目录在/home/cvsroot(根据自己的系统调整)
2、建立CVS仓库,用cvsroot 用户登陆,用下面命令:
$cvs -d /home/cvsroot init
3、仍然是 cvsroot 用户,修改 /home/cvsroot (CVSROOT)的权限,赋与同组人有读写的权限:
$chmod 775 -R /home/cvsroot
4、用root登录,加入cvs服务(我的redhath7.3缺省就有cvs服务,所以不用加)
vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
cvs服务由inted来唤起,因此需要改动inetd提供的服务,如果你的redhat使用的是inetd 方式则在文件/etc/inetd.conf中加入如下的内容:cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
我的redhat7.3使用的是xinetd方式,所以在xinetd.d目录下添加需要启动的服务:
cd /etc/xinetd.d
vi cvspserver
文件内容:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = cvsroot
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
重新启动inetd或者xinetd:
/etc/rc.d/init.d/xinetd restart
检查cvspserver服务是否已经启动
[root@localhost /]# netstat -lnp|grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 1041/xinetd
则说明cvs服务器已经运行。
二、管理CVS服务器
服务器可以用了,现在大家最关心的就是如何管理服务器,比如,我想让一些人有读和/或写 CVS 仓库的权限,但是不想给它系统权限怎么办呢?
不难,在 cvs 管理员用户(在我这里是 cvsroot 用户)的家目录里有一个 CVSROOT 目录,这个目录里有三个配置文件,passwd, readers, writers,我们可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用:
passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:
{cvs 用户名}:[加密的口令]:[等效系统用户名]
readers:有 cvs 读权限的用户列表文件。就是一个一维列表。在这个文件中的用户对 cvs只有读权限。
writers:有 cvs 写权限的用户的列表文件。和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。
上面三个文件在缺省安装的时候可能都不存在,需要我们自己创建,好吧,现在还是让我们用一个例子来教学吧。假设我们有下面几个用户需要使用 cvs:
laser, gumpwu, henry, betty, anonymous。
其中 laser 和 gumpwu 是系统用户,而 henry, betty, anonymous 我们都不想给系统用户权限,并且 betty 和 anonymous 都是只读用户,而且 anonymous 更是连口令都没有。
然后编辑 cvs 管理员家目录里 CVSROOT/passwd 文件(cvsroot用户),加入下面几行:
laser:$xxefajfka;faffa33:cvsroot
gumpwu:$ajfaal;323r0ofeeanv:cvsroot
henry:$fajkdpaieje:cvsroot
betty:fjkal;ffjieinfn/:cvsroot
anonymous::cvsroot
注意:上面的第二个字段(分隔符为 :)是密文口令。
密码可以有以下方法生成
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}\n";
如果需要密码为:some,则敲入:
./passwdgen.pl some
(注意passwdgen.pl要先设为可执行)
回车即可得到加密密码,用其替换passwd文件中的passwd部分就可以了
编辑 readers 文件,加入下面几行:
anonymous
betty
编辑 writers 文件,加入下面几行:
laser
gumpwu
henry
注意:writers中的用户不能在readers中,要不然不能上传更新文件。
对于使用CVS的用户要修改它的环境变量,例如laser用户的环境变量,打开/home/laser(laser的宿主目录)下的.bash_profile文件,加入
CVSROOT=/home/cvsroot
export CVSROOT
用laser登陆就可以建立CVS项目,如果要root使用,可以修改/etc/profile文件。
现在我们各项都设置好了,那么怎么用呢,我在这里写一个最简单的(估计也是最常用的)命令介绍:
首先,建立一个新的CVS项目,一般我们都已经有一些项目文件了,这样我们可以用下面步骤生成一个新的CVS项目:
进入到你的已有项目的目录,比如叫 cvstest:
$cd cvstest
运行命令:
$cvs import -m "this is a cvstest project" cvstest v_0_0_1 start
说明:import 是cvs的命令之一,表示向cvs仓库输入项目文件。 -m参数后面的字串是描述文本,随便写些有意义的东西,如果不加 -m 参数,那么cvs会自动运行一个编辑器(一般是vi,但是可以通过修改环境变量EDITOR来改成你喜欢用的编辑器。)让你输入信息,cvstest 是项目名称(实际上是仓库名,在CVS服务器上会存储在以这个名字命名的仓库里。)
v_0_0_1是这个分支的总标记。没啥用(或曰不常用。)
start 是每次 import 标识文件的输入层次的标记,没啥用。
这样我们就建立了一个CVS仓库了。
建立CVS仓库的文件夹应该是“干净”的文件夹,即只包括源码文件和描述的文件加,而不应该包括编译过的文件代码等!
--------------------
很快就配置好了,但是在用ide做签出的时候,一直提示有问题,后来发现,那个仓库的名字必须是/home/cvsroot
分享到:
相关推荐
【CVS配置详解】 CVS(Concurrent Versions System)是一种广泛使用的版本控制系统,它允许团队成员协同工作并跟踪代码的变化。在Windows环境下,通常使用CVSNT作为CVS的实现,因为它提供了对Windows系统的良好支持...
### CVS配置详解 #### 一、CVS简介与配置基础 CVS(Concurrent Versions System)是一种源代码版本控制系统,广泛应用于软件开发过程中对代码版本的管理。它可以帮助团队成员协同工作,确保代码的一致性和可追溯性...
在Eclipse的CVS配置中,勾选“CVSNT Clients”下的“Respond as cvs1.11.2 to version request”选项。这是为了确保Eclipse与CVSNT之间的兼容性,因为不同版本的CVS可能存在通信协议的差异。 5. **连接到CVS仓库**...
总的来说,CVS配置与使用是软件开发中的重要环节,它有助于团队成员间的协同工作,提高代码管理效率,避免版本冲突,同时提供了代码历史追踪和恢复旧版本的能力。正确配置和熟练使用CVS,能够极大地提升开发效率和...
### CVS配置管理工具使用手册详解 #### 一、CVS简介 CVS(Concurrent Versions System),即并发版本系统,是一种广泛使用的开源版本控制系统。它主要用于软件开发过程中的源代码管理,同时也适用于其他类型的文件...
《CVS配置管理 从入门到精通》是针对软件开发团队协作中不可或缺的版本控制工具——CVS(Concurrent Versions System)的详细教程。CVS作为一个C/S架构的系统,其核心功能在于协助多用户对同一份代码或文档进行协同...
【Myeclipse与CVS配置】是关于在Myeclipse集成开发环境中配置和使用CVS(Concurrent Versions System,协同版本系统)的教程。CVS是一个开源的版本控制系统,允许开发者对源代码进行版本管理,便于团队协作和项目...
CVS 配置apiCVS 配置apiCVS 配置apiCVS 配置api
下面将详细介绍CVS和SVN的配置学习要点。 1. CVS简介: CVS是一种早期的版本控制系统,它基于客户端-服务器架构,允许开发者在不同的计算机上工作并同步更改。CVS的核心特性包括版本追踪、分支与合并、冲突解决...
MyEclipse CVS配置是如何的呢?具体的实施是什么步骤,其中需要注意的又是什么呢?这篇文章我们就向你介绍MyEclipse CVS配置的详细情况。
CVS 配置方法讲解 CVS(Concurrent Versions System)是一种版本控制系统,帮助开发人员管理项目文件版本,确保项目成员之间的协作发展。下面是 CVS 配置方法的详细讲解。 服务器端配置 服务器端使用 Linux ...
【myeclipse CVS 配置】是指在MyEclipse集成开发环境中配置CVS(Concurrent Version System)的过程。CVS是一种版本控制系统,用于管理和跟踪软件项目中的文件版本,尤其适用于多用户协同开发的场景。 在MyEclipse...
【CVS安装配置】 CVS(Concurrent Versions System)是一种版本控制系统,用于管理软件开发过程中不同版本的源代码。在多人协作的项目中,CVS能够帮助开发者追踪代码的修改历史,合并不同人的更改,并确保团队成员...
【CVS配置管理】是一种版本控制系统,用于管理软件开发中的源代码和其他文件,确保多人协作时的文件同步和冲突解决。CVS(Concurrent Versions System)的核心思想是在服务器上设立一个中央仓库,开发者从仓库中检出...
### CVS配置与使用详解 CVS(Concurrent Versions System)是一种源代码版本控制系统,主要用于软件开发过程中的版本管理和协作。本文将基于“CVS配置.doc”文档内容,深入解析CVS的安装、配置及在Eclipse环境下的...
【CVS配置及使用视频教程】是一套针对版本控制系统CVS的详细教学资源,旨在帮助用户深入了解并熟练掌握CVS的配置与应用。CVS,全称Concurrent Versions System,是一种广泛使用的开源版本控制系统,它允许多个开发者...