cvs安装配置

cvs的安装配置

可以查看是否安装cvs
#rpm -qa|grep cvs
如果未安装,到www.cvshome.org下载一个最新的rpm安装即可

一、创建系统帐号

假设目录 /repos/project 作为多人共享项目的版本控制根目录,需要用组权限控制;
         /repos/user    作为存放个人独占地版本控制根目录。

管理员帐号为 cvsroot
项目版本控制的公共帐号为 cvsproject
用户版本控制的公共帐号为 cvsuser
相应的用户组为 cvsroot, cvsproject, cvsuser。

# groupadd cvsroot
# groupadd cvsproject
# groupadd cvsuser

设置 cvsroot 属于多个组,这样 cvsroot 用户除了进行系统维护外(如添加新的工程),还可以和其它组用户一样具有管理代码的权限。
# useradd -g cvsroot -G cvsproject,cvsuser cvsroot

# useradd -g cvsproject -s /sbin/nologin cvsproject
# useradd -g cvsuser -s /sbin/nologin cvsuser

用来和CVS用户帐号一一对应的系统帐号。系统帐号禁止登录,密码设置在相应的 CVS 对应帐号文件中设置。
# useradd -g cvsuser -s /sbin/nologin cvs_yan
# useradd -g cvsuser -s /sbin/nologin cvs_wen


二、创建CVS根目录
# mkdir -p /repos/project
# mkdir -p /repos/user
# chown cvsroot.cvsroot /repos/project
# chown cvsroot.cvsroot /repos/user
# chmod 775 /repos
# chmod 2775 /repos/project  或 (  # chmod 775 /repos/project 然后 # chmod g+s /repos/project  )
# chmod 2775 /repos/user  或 (  # chmod 775 /repos/user 然后 # chmod g+s /repos/user  )


设置 g+s,是为了当设置一个用户属于多个时,操作不同工程时,能够保障文件的组id维持不变。否则可能影响其它用户的权限。

三、加入cvs服务(缺省安装的通常缺省就有cvs服务)
#vi /etc/services
#cvspserver 2401/tcp #pserver cvs service
#cvspserver 2401/udp #pserver cvs service

把cvs服务放到xinetd系统服务中
#cd /etc/xinetd.d
#vi cvspserver
文件内容:
service cvspserver
{
disable           = no
port              = 2401
flags             = REUSE
socket_type       = stream
protocol          = tcp
wait              = no
user              = root
server            = /usr/bin/cvs
server_args       = -f --allow-root=/repos/project --allow-root=/repos/user  pserver
#log_on_success   += USERID
#log_on_failure   += USERID
}

或者,如果cvs仓库比较多可以采用如下格式(server_args 有长度限制):
service cvspserver
{
disable           = no
port              = 2401
flags             = REUSE
socket_type       = stream
protocol          = tcp
wait              = no
user              = root
server            = /real/bin/cvs.run
#log_on_success   += USERID
#log_on_failure   += USERID
}

注意:#log_on_success   += USERID #log_on_failure   += USERID 加上这两个属性会导致win系统链接cvs服务器很慢,而在linux系统下没有问题。


vi /real/bin/cvs.run
==============================
#!/bin/bash
/usr/bin/cvs -f \
--allow-root=/repos/project \
--allow-root=/repos/user \
pserver
==============================


四、初始化CVS

初始化CVS切换到cvsroot用户,然后进行初始化
初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件

# su - cvsroot
# cvs -d /repos/project init
# cvs -d /repos/user init


在服务器端创建工程
# mkdir test
# chown -R cvsproject.cvsproject test
# chmod -R 2770 test


五、创建 CVS 用户帐号

cvs用户和服务器用户可以是不一样的
设置 CVSROOT目录中config文件的 systemauth = no ,表示必须在passwd中存在用户名称和密码的才可以使用cvs服务器。

# chmod 644 /repos/project/CVSROOT/config
# vi /repos/project/CVSROOT/config
设置 SystemAuth = no

# chmod 644 /repos/user/CVSROOT/config
# vi /repos/user/CVSROOT/config
设置 SystemAuth = no


使用配置文件 CVSROOT/passwd 来管理帐号。
用户管理 CVS默认使用系统用户登录,为了系统安全性的考虑也可以使用独立的用户管理。
CVS用户名和密码保存在CVSROOT目录下的passwd文件中,
格式为:   用户名:密码:系统用户
也就是说,它把CVS用户映射到系统用户,这样我们就可以通过系统用户的权限设置来分配给用户不同的权限,而不需要让用户知道系统用户名和密码。

passwd文件默认并不存在,我们必须自己创建。
文件中的密码字段使用MD5加密,不幸的是CVS没有提供添加用户名的命令,所以我们借用Apache的命令来完成这项工作:
htpasswd命令不是为CVS而设,它不能自动添加映射到的用户名,我们设置好密码后,自己把这部分加上。

创建一个新文件同时创建一个cvs用户
# htpasswd -c /repos/project/CVSROOT/passwd cvs_yan
添加新的cvs用户
# htpasswd /repos/project/CVSROOT/passwd cvs_wen

密码也可以使用下列脚本生成:
vi /real/bin/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";
===================================

# /real/bin/passwdgen.pl your_password


vi /repos/project/CVSROOT/passwd
===================================
cvs_yan:1rV3EIhq1NczU:cvsroot
cvs_wen:KIutquskGh4YU:cvsproject
anonymous::cvsproject
===================================
 

$ cat /repos/project/CVSROOT/readers
anonymous

密码也可以使用Linux系统用户的密码,从 /etc/shadow 文件里拷贝出密码

六、配置读写权限

使用CVSROOT目录下的readers和writers文件进行这个工作。这2个文件默认也是没有的,自己创建就可以了。
readers文件记录拥有只读权限的用户名,每行一个用户;
writers文件记录拥有读写权限的用户名,每行一个用户。
注意,readers文件比writers优先,也就是说出现在readers中的用户将会是只读的,不管writers文件中是否存在该用户。

vi /home/cvsroot/wen/CVSROOT/readers
===================================
anonymous
===================================

vi /home/cvsroot/wen/CVSROOT/writers
===================================
cvs_yan
cvs_wen
===================================

 

七、启动cvs
重新启动xinetd服务,CVS服务器应该能够启动了
# /etc/rc.d/init.d/xinetd restart
或者
# service xinetd restart

检查cvspserver服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果,表明cvs服务器安装成功:
tcp 0 0 *:cvspserver *:* LISTEN


八、modules文件
更进一步的管理 CVSROOT目录下还有很多其他功能,其中最重要的就是modules文件。
这个文件定义了源代码库的模块,下面是一个例子:
代码:
Linux Linux
Kernel Linux/kernel
这个文件的内容按行排列,每一行定义一个模块,首先是模块名,然后是模块路径,这是相对于CVS根目录的路径。
它定义了两个模块,第一个是Linux模块,它位于Linux目录中,第二个是Kernel模块,这是Linux模块的子模块。 modules文件并非必须的,它的作用相当于一个索引,部分CVS客户端软件通过它可以快速找到相应的模块,比如WinCVS。


九、源代码仓库的备份

完全可以用文件备份的方式进行备份。
需要注意的只是,应该确认备份的过程中没有用户提交修改,具体的做法可以是停止CVS服务器或者使用锁等等。
恢复时只需要把这些文件按原来的目录结构存放好,因为CVS的每一个模块都是单独的一个目录,与其他模块和目录没有任何瓜葛。
甚至只需要在仓库中删除一个目录或者文件,便可以删除该模块的一些内容,不过并不建议这么做,使用CVS的删除功能将会有一个历史记录,而对仓库的直接删除不留任何痕迹,这对项目管理是不利的。


十、移动仓库
与备份相似,只需要把该模块的目录移动到新的路径,便可以使用了。


=================================================================
CVS CVSROOT里的文件
=================================================================
文件 CVSROOT/val-tags 用来确定是否一个TAG是可用的;
文件 CVSROOT/history 用来记录CVS的访问记录。
文件 CVSROOT/cvsignore 设置版本控制过程中,忽略的文件。更新文件时,这些文件将被隐藏,不在显示为 "?" 类型文件。例如:
*.db
*.info
*.[Sp]o
*.core
*.aps
*.clw
*.exe
*.ncb
*.obj
*.opt
*.plg
Debug
Release


文件 CVSROOT/cvswrappers 匹配文件名,并作相应处理。如: -k b 即以二进制方式处理文件。
文件 CVSROOT/modules 设置数据仓库中的模块名,可以通过命令:“cvs co -c”察看当前数据仓库(repository)中包含的模块/工程名称。也可以在调整服务器端目录结构时,设置 modules 来保持和以前设置的兼容性。
文件 CVSROOT/checkoutlist 列在 checkoutlist 中的文件,在 checkin 后,能够自动在服务器 CVSROOT 目录中重建。
文件 CVSROOT/commitinfo
Commit 事件要触发三个脚本文件,依次是 commitinfo, verifymsg, loginfo。其中先遍历整个目录树对所有需要 commit 的文件执行 commitinfo文件。再分别针对每一个目录执行 verifymsg, loginfo 脚本。
commitinfo 完成的功能:通过用户主机名、用户名来检查权限;确认CVS服务器的版本号不低于某个版本;将遍历目录树的结果(最后一个目录名)记录下来,以便接下来运行 verifymsg, loginfo的脚本能够确认运行结束等。
相关文件:CVSROOT/commitcheck,CVSROOT/cvs_acls.pl,CVSROOT/avail,CVSROOT/commit_prep.pl,CVSROOT/exclude,CVSROOT/cfg.pm,CVSROOT/cfg_local.pm


文件 CVSROOT/avail,用以精细控制权限。例如:
group|meisters|peter,jdp,markm,joe
# Pick up the list of bad users from ncvs/CVSROOT/badcommitters  See that
# file for details
group|penaltybox|!badcommitters
unavail
avail||CVSROOT
avail||distrib
avail||doc
avail||ports
avail||src
unavail||src/contrib/binutils,src/contrib/file
avail|obrien|src/contrib/binutils,src/contrib/file
unavail||src/contrib/tcpdump
avail|fenner,nectar|src/contrib/tcpdump
avail||www
avail|:meisters
unavail|:penaltybox
 
文件 CVSROOT/cfg.pm,是 perl脚本的核心包。可以根据需要加入所需的代码。

文件 CVSROOT/verifymsg
相关文件:CVSROOT/logcheck。
用于检查和格式化 commit log。禁止在版本控制提交时,使用空的 commit log。对于 wincvs 在用户不提交 commit log 时,会自动使用“no message”作为commit log。

文件 CVSROOT/loginfo
相关文件:CVSROOT/log_accum.pl,CVSROOT/cfg.pm ,CVSROOT/cfg_local.pm。
将 commit log 分门别类存储在目录 CVSROOT/commitlogs 下,并同时通过邮件外发。为了防止一次事件触发多次的邮件外发,该脚本利用到 commitinfo 的运行结果,只有确认到了目录树的最后,才发送邮件。 模块和存储日志文件以及用户邮件列表在文件CVSROOT/cfg_local.pm中定义。

 

 

 

 
Linux系统下CVS安装配置、仓库初始化 1、CVSCVSACL源码的获得1)获取CVSCVSACL源码的外网地址如下:l CVS:http://www.cvshome.org,l CVSACL:http://sourceforge.net/projects/cvsacl。2)获取CVSCVSACL源码的内网地址如下l         http://172.20.23.159/soft/需要注意的是,因为CV 阅读详情

相关推荐

CVS版本控制系统使用指南和安装教程

本文还有配套的精品资源,点击获取 简介:CVS是一种开源版本控制系统,用于多开发者协作和文件历史跟踪。本指南详细介绍了CVS的使用方法和安装过程,涵盖基本概念、安装步骤、日常操作、进阶使用和与现代版本控制系统的对比。通过掌握这些知识,你可以有效地使用CVS进行软件开发和项目管理。 1. CVS基本概念 CVS(Concurrent Versions Syst...

weixin_30765637的博客 2049

软件开发工具【十二】 之 CVS安装及使用

感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:软件开发工具【十一】 之 Eclipse开发CDT常用功能 文章目录一、CVS介绍1.CVS是什么2.利用版本控制软件的好处二、常用版本控制软件三、CVS安装配置1.CVS安装2.CVS Control Panel的设置3.CVS访问权限的设置4.将软件载入CVS资源库5.CVS的日常使用a.提出(Check Out)b.代码同步(Synchronize) 一、CVS介绍 1.CVS是什么 2.利用版本控制软件的好处 管理文档。使用.

吴小迪的博客 8127

Linux服务器端与Windows客户端CVS集成及安装指南

版本控制系统是现代软件开发不可或缺的一部分,CVS(Concurrent Versions System)作为早期的版本控制工具之一,在软件业界占据了重要的地位。CVS不仅允许开发者在本地编写代码,还支持跨平台的代码管理与协作。其核心优势在于能够追踪文件的变更历史,支持多用户在同一个文件上的修改,并能够合并这些更改,有效地解决了代码版本混乱的问题。跨平台协作是CVS的一大特色,它支持包括Unix/Linux、Windows以及Mac OS在内的多种操作系统。

weixin_42168902的博客 974

CVS安装配置详解

CVS安装配置详解1.       CVS软件包的安装第一步:下载cvs软件包,从网上搜吧。第二步:解压缩文件bz2包#bzip2 –dvf cvs-xx.tar.bz2#tar –xvf cvs-xx.targz包#tar –zxvf cvs-xx.tar.gz第三步:安装cvs#cd cvs-xx#./configure#make#make

yolaiyoqu2008的专栏 4039

cvs安装及使用

by camry.wucvs安装及使用摘要: 简叙 cvs 安装使用安装步骤简述cvs 是个经常使用的东西, 启动也很简单, 把步骤记录一下, 免得忘记掉.建用户及组  $ su  # apt-get install cvs  # mkdir /usr/cvsroot  # groupadd cvs  # us

寻道客 3219

CVS安装配置和使用手册

I.    CVS Server/Client 安装  Server: CVSnt 2.0.51d            (http://www.cvsnt.org/archive/, 全部版本的CVSnt 下载) Client:  winCVS 1.3.20.2 (下载的CVSnt 2.0.51d 中有)            activeTCL 8.4.1.0-2             py

goldwolf的专栏 3758

CVS安装配置

1 apt-get install cvs 2、创建CVS组和用户 $groupadd cvs $useradd cvsroot -g cvs   3、查看配置文件 $grep cvspserver /etc/services 查看是否有以下服务,如果没有加

436

Redhat linuxcvs安装配置

Redhat linuxcvs安装配置通常情况下,RH linux缺省安装cvs。可以查看是否安装cvs #rpm -qa|grep cvs 如果安装了,就会返回已安装cvs版本号#cvs-1.11.2-25如果未安装,到www.cvshome.org下载一个最新的rpm安装即可 创建用户cvs #useradd cvscvs用户添加密码 #passwd cvs 创建目录来放需

猪少爷的奋斗 8760

CVS 安装配置总结

                   CVS 安装配置总结1.      在linux环境中安装cvsA.本次安装环境:redhat9(默认安装)。-----没有进行安装B.若果没有安装的执行下面操作(1)下载所需要的rpm包并安装www.cvshome.org 2.设置组创建cvs组 groupadd cvs  (有可能已经建立了cvs

cnnlao的专栏 536

linux 安装cvs,linuxcvs详细安装配置.docx

Linuxcvs详细安装配置2009-03-18 14:37:12标签:[推送到技术圈]版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始岀处 作者信息和本声明。否则将追究法律责任。/510938/139954Linuxcvs详细安装配置linuxcvs安装配置叫 windows下面要简单很多,下面以RedHat-AS4为例进行介绍说明一、安装和初始化 cvs服务器...

weixin_39586915的博客 429

CVS服务器安装配置

看了不少CVS服务器的安装说明,自己也着手开始进行CVS服务器的安装,现将安装配置记录如下:OS环境:RedHat Linux 9CVScvs-1.12.9.tar.gz   (下载地址:http://www.cvshome.org)一、源码包安装一般来说RedHat Linux 9缺省是安装cvs的,我们可以通过以下命令查看[root@VLinux root]# rpm

三V工作室·泰伯子仪 3311

cvs服务器安装与Eclipse配置

现在虽然SVN可能是更好的版本管理系统,Eclipse也有相应的插件,但以前一直用CVS,用起来比较熟,不需要任何插件.以前没有搭建过CVS服务器,只是使用。今天自己搭建了一个,我使用的是CVSNT,中间还是遇到了一些问题,开始时没有勾选Compatiablity Options中的Respond as cvs 1.11.2 to version r,从而可能导致与Eclipse兼容性的问题,

fuliangliang的Blog 1万+

ubuntu下安装配置CVS

网上ubuntu下安装CVS的资料挺多,不过尝试过之后基本都上跑不起来。经过了一下午+一晚上的努力,总算是配置成功了,我把详细过程和中间遇到的问题都记录下来,于是就有了这篇文章。cvs安装方式大致有两种一种是cvs+cvsd,另一种是cvs+xinetd,我选择的是cvs+xinetd,这种做法比较节省资源,xinetd是一个后台服务管理程序,除了管理cvs之外还可以管理其它的后台服务,理论上讲

Briver Song的专栏 4332

cvsd 服务

cvs 通常有本地和远程两种工作方式,本地方式即用本地目录作为 cvs 的代码仓库( Repositories ),而远程模式需要假设 cvsd 服务器,提供 cvs 服务。在使用上,这两种工作方式没有区别。 下面是在 Gentoo 上安装 cvsd 的流程(root 用户): 1、安装 cvsd : # emerge cvsd 2、配置 /etc/cvsd/cvsd.conf 基本不

这就是我自己 1852

CVS安装配置

1.安装CVS客户端 2.安装CVSNT 3.安装CVSTrac 4.执行前三步后,接下来设置CVSNT A. 打开 程序 -> CVSnt -> 'Service Control Panel'; B. 如果服务已经运行,先停止服务; C. 点击 'Repositories(仓库)' -> 'add' ->输入Repositories(仓库)的路径 (如....

小积累 275

CVS使用

可以在网上随便找篇教程 http://www.blogjava.net/sk8boy/articles/15649.html 我安装碰到的问题及处理如下: 1. 关闭防火墙2401 2. /etc/xinetd.d/cvspserver下面的配置文件中=左右必须有空格,否则有问题 3. 如果系统没有xinetd,需要先进行安装 附教程内容: CVS安装配置 1 准

buck84的专栏 726

CVS安装与使用

 1.1     1.1       编写目的安装配置、使用CVS,保持系统版本统一1.2     1.2       参考资料暂缺2         2         安装CVSNT2.1     2.1       安装按默认配置安装即可2.2     2.2       配置CVSNT(CVS服务)运行CVSNT Control Panel程序

ancky_zhang的专栏 2749

CVS安装使用说明

CVS安装使用说明CVSLinux中的配置和使用[引用自CSDN]http://ximbiot.com/http://www.cvshome.org第一部分 CVS服务器的配置1、 CVS简述:CVS是Concurrent Versions System的缩写,它是目前比较流行与优秀的版本管理与控制工具,它深受大多数开发人员与系统管理的喜爱,同时也是用来管理其它日常文档(如word工作

stormaveng的专栏 1268
上一篇: rpm
下一篇: cvs常用命令
iteye_10791
博客等级 码龄8年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值