三、cvs服务器架与应用实例
1.服务器安装配置
假设目前有一工作项目,需要用cvs 来管理员码.这个开发组为内部3人,器ip 分别是:192.168..1.2(用户名t1), 192.168.1.3)(用户名时t3),193.168.1.3(用户名t3),远程用户一人,其主机是 tom.example.com.(用户名是tom)
如果你已经安装了cvs,建立一cvs 主机为 cvs.exam.org的服务器非常简单.步骤大致如下:
1.1 以root 身份登录.建立软件库(repository)
$export CVSROOT=/cvsroot
$mkdir /cvsroot
$cd /cvsroot
$cvs init
1.2设置执行权限
$chmod /cvsroot/CVSROOT 744 (/clearcase/" target="_blank" >ccvsroo/CVSOOT设置为只读)
$chmod /cvsroot 764 组号 (/cvsroot 对开发组可读写)
修改文件以利于其他人使用,因为开发组人员是系统用户,所以在这里用系统的用户名和password是比较好的.先编辑.rhosts件如下:
tom.example.com. tom
修改服务器上的 /etc/inetd.conf文件,加入如下的句子
2401 stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/usr/cvsroot pserver
这样一来,一个基本的cvs 服务器建好了.
我们这里只是提供了一个基本的应用.cvs 真正的细节应用非常复杂.我们这里只进行一些抛砖引玉的介绍.与兴趣的朋友可以细读它的安装文档.
2.应用实例
(使用主机上的cvs 系统,可以telnet 到主机上,然后使用,和本机使用没什么差别,所以本文一直不提)
假设上例中的tom 想使用 cvs 主机上的cvs系统以和大家协作开发.首先它营配置自己的一些环境变量.首先编辑/etc/services'加入:
cvspserver 2401/tcp
然后在.profile 文件中加入如下代码
CVSROOT=:etx:psever:tom@cvs.exam.org:/cvsroot
Export CVSROOT
这样他便可以使用$cvs login 来登录了.下面我们便以tom 的具体使用为例子讲一下cvs 的应用.和其他linux 命令一样.cvs 也有大量的参数.我么将在下一节做一个列表.
Tom 在/usr/test 目录下有如下文件
Ecample.c exampl2.c tes1.c test2.c utimel.c tty.c
如果想在软件库建立自己的目录
$cd /usr/test
~test$ cvs import –m “tom first creation” tomdir tom tomwork
N tomdit/example.c
N tomdit/exampl2.c
N tomdir/test1.c
N tomdir/test2.c
N tomdir/utmel.c
N tomdit/tty.c
No conflicts creat by this import
命令说明 import 提交命令 –m 后加描述.tom 发行商 tomwork 是发行标号.如果提示CVSROOT 不对,可以用- -d 加CVSROOT
注:一切cvs 的命令 可以用 cvs command –H 来获得帮助. 这时服务器端的/cvs 目录下多了一个 tomdir 子目录.内容下:
example.c,v exampl2.c,v test1.c,v test2.c,v tty.c,v utimel.c,v
至此首次提交完成.
这样便是一不小心删除了test 目录也不用担心.使用如下命令,可从软件库中检出源文件的备份
$/cd usr
`usr$/cvs checkout test tomdir-r 1.1
U test/exsample.c
U test/exampl1.c
U test/test1.c
U test/test2.c
U test/tty.c
U test/ulnem.c
cvs checkout命令缺省是得到新版本.我们也可以得到某一个老版本,此命令是将tomdir的1.1版的代码取出. 恢复后test 目录增加了一个CVS 目录是用来管理的,以便在你下一次提交或修改的时候,和服务器上的管理文件相接口,保证版本好.这个例子非常小,现实中工程非常可能文件非常多,这样可以先恢复 CVSROOT 的模块
~usr/$cvs checkout CVSROOT/mouldes
~/usr/$vi CVSROOT/mouldes 编辑模块名,如我们在文件尾加上
src project/src
print project/src/print
cvs commit
以后我们可以用cvs checkout print来代替
cvs checkout project/src/print
编辑完后即可以提交文件
~usr/$cvs commit –m “edit of mouldes name” CVSROOT/mould除了可以恢复整个目录后也可以恢复单个文件或模块
~usr/test/$cvs checkout –m “newer file “ tty.c
在恢复了文件以后, tom 便可以使用各种编辑器,对源文件进行修改,修改完成以后可以提交它的工作成果了
~/usr/cvs commit test tomdir.
这样,tom 便完成了一次源文件的升级.其他的同理可得