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:cvs@192.168.0.192: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)
。
posted on 2007-03-08 08:33
☜♥☞MengChuChen 阅读(381)
评论(0) 编辑 收藏 所属分类:
VSS