cvs 管理

一、设置cvs服务器:

1.1. 修改xinetd服务
vi /etc/xinetd.d/cvs
# --------------------------------------
service cvspserver
{
disable = no
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
env = HOME=/cvs/cvsroot
server_args = -f --allow-root=/cvs/cvsroot pserver
}
# --------------------------------------
注意:
--allow-root参数可以写多个,每个cvs仓库都要写在这里。

1.2. 重启xinetd服务
/etc/init.d/xinetd restart/reload

1.3. 检查cvs服务是否开启
netstat -l | grep cvspserver

1.4. 防火墙开启2401/tcp端口(cvspserver默认端口)

二、建立cvs仓库

2.1. 初始化cvs仓库
cvs -d /cvs/cvsroot init
执行后,会生成/cvs/cvsroot/CVSROOT 目录
有三个文件需要创建(可选)(详见后面介绍)
passwd
readers
writers
2.3. 导入代码
cd /source/code/path
cvs –d /cvs/cvsroot import <repository> <vendor tag> <release tag>
<repository>——nas
<vendor tag>——H3C
<release tag>——v1.0
2.4. passwd
可以使用htpasswd生成密码(或者从/etc/shadow里面复制):
htpasswd passwd username
即可在passwd中增加username的密码(如果passwd不存在,用htpasswd -c passwd username 创建文件)。
htpasswd产生的是username:xxx的形式,修改为 cvsuser:xxx:systemuser 的形式,可以把 cvsuser 映射为 systemuser。这样可以对cvs进行统一管理。

2.5. readers 和 writers
readers和writers中写的是cvs username,每行一个username,最后一行一定是一个空行。
在readers中的用户具有readonly权限
在writers中的用户具有readwrite权限
在readers和writers中都有的用户只有readonly权限

三、权限管理

pserver模式可以实现两级管理:开发小组 -> 开发人员。

原理:
建立以模块名为名字的系统用户组和用户。
每个人映射到一个用户上。
一个用户可以属于多个组,以此来增加权限。

具体方法(以NAS为例):
3.1. 建立系统帐号(system group & user)
groupadd cvs # 建立cvs组
useradd cvscore # 建立cvscore用户和cvscore组,权限较高
useradd cvsnfs # 增加cvsnfs用户和cvsnfs组
useradd cvsftp
……
3.2. 设置cvs目录的权限(假设cvsroot是/cvs/cvsroot目录)
cd /cvs/cvsroot
chown –R cvs:cvs nas
chmod 2775 nas # drwxrwsr-x , 设置set group位,使得目录下所有新创建的文件目录都属于这个组
chown -R cvsnfs:cvsnfs nas/source/nfs
……
3.3. 设置cvscore可以修改cvsnfs的目录
usermod -a -G cvsnfs cvscore #把cvscore添加到cvsnfs组中,这样就可以读写nfs的目录了。

3.5. writers/readers
cd /cvs/cvsroot/CVSROOT
vi writers # 把所有的开发人员的帐号写到writers中,每个一行,最后是一个空行。
vi readers # 只有开发人员的话,可以不创建这个文件。

3.6. passwd
htpasswd -c passwd <user1> # 创建passwd文件,顺便写入<user1>的密码
htpasswd passwd <user2> # 在passwd文件中创建(修改)<user2>的密码
……
vi passwd # 把开发人员帐号映射到开发小组的系统用户


四、cvs的备份
把nas目录打包备份就可以了
cd /cvs/cvsroot
tar –czvf nas.tar.gz nas
五、cvs客户端的使用(TortoiseCVS )
TortoiseCVS与Windows的资源管理器是集成的,只有右键菜单,没其他的界面。

N.B. :
建议每天(每次)在写新的代码之前,都cvs update一下,得到最新的代码,然后再修改。

5.1. 创建新的Module
右键菜单CVS->Make New Module... ,写上新的Module的名字 # 这个会把当前目录下的子目录添加到cvs中。
右键菜单CVS Add Content... # 这个会递归的把所有的子目录和文件添加到cvs中
右键菜单CVS Commit... # 这个命令会把文件的内容添加到cvs中
5.2. cvs checkout
开发人员用自己的帐号,密码
:pserver:user1@server:/cvs
module是nas,可以把nas及其子目录下载到本地。
当module是“.”的时候可以把整个cvs repository都checkout到当前目录

cvs checkout只执行一次,以后用cvs update进行同步。

5.3. 新建代码,或者目录
创建目录或者文件后,右键菜单点击 cvs add...

5.4. 提交修改的代码
右键选择 cvs commit
5.5. update 特定版本
选择cvs Update Special...
选择需要的tag,
注意:
如果当前的版本是某一个tag,而想update到最新的代码的时候,必须使用Update Special 到HEAD这个tag,否则只会update到当前的tag版本。

六、cvs客户端的使用(Linux)
6.1. 设置环境变量
$ export CVSROOT=:pserver:username:passwd@server:/cvs/cvsroot
或者不使用环境变量,直接作为cvs的-d参数从命令行输入。
6.2. checkout
$ cd /working/dir/
$ cvs co nas (co 是checkout的简写)
如果没有设置CVSROOT环境变量:
$ cvs -d :pserver:username:passwd@server:/cvs/cvsroot co nas

6.3. update
$ cd /working/dir/nas/xxx/yyy
$ cvs up ( up 是update的简写)
update到特定版本:
$ cvs up -r tag
$ cvs up -r HEAD

6.4. commit
$ cd /working/dir/nas/xxx/
$ cvs ci (ci 是commit的简写)
commit某一个文件:
$ cvs ci filename
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值