3.CVS 的获得安装
CVS 在一般的linux发行版本中都有默认的安装.如果你的系统没有安装也没有关系,CVS可以在intenet 上很方便的得到. 它的源码在 ftp://202.113.29.4/pub1/unix/cvs 它的说明文档在ftp://202.113.29.4/doc/cvs.任何人可以很方便的下载.目前他的新版本是2..10.8..
安装过程大致如下:
在任一目录下解开下载的压缩文件.
利用文件包内的安装工具,完成安装,(内有说明文档).
通常是:make config 和 make install
(不通版本的,安装方法可能不同,具体的请参见,它自身所带的安装文档)
4.服务器的安装使用
在安装完CVS 系统后我们便可以开始CVS仓库的安装. 在linux环境里,CVS的使用一般是以命令行方式,也有一些GUI的前端工具,如 TKCVS等.这里我们将应用CVS 的一般命令即 cvs [cvs的选项] cvs-command [command 选项] 的方式完成服务器的配置.
4.1 软件仓库(repository)的管理
创建CVSROOT根目录
首先编辑有关的环境变量.(CVS的几个重要的环境变量如下:
CVSROOT 仓库根目录的完整路径名
CVSREAD 如果设置,表明在checkout操作时所有的文件都置成只读
CVSBIN CVS利用了很多RCS的命令,指定乐RCS工具的路径
CVSEDITOR 指定用户书写日志信息所使用的编辑器
CVS_RSH 启动一个远程CVS服务器时,所使用的shell的名称
CVS_SERVER 决定"cvs server"的名字,缺省是CVS
CVSWRAPPERS cvswrapper脚本, 用来指定包装文件名.)
其中中重要的是CVSROOT,它指明了仓库所在的位置,在创立新的仓库时,它是必不可少的.因此一般需要加入环境变量CVSROOT的定义.如在 /etc/bashrc 文件中加入下面两行
CVSROOT=/cvsroot
export CVSROOT
或者直接在命令行上执行
$ export CVSROOT=/cvsroot
然后在相应位置开始创建CVSROOT
$mkdir cvsroot
$cvs init
如果没有定义变量CVSROOT 会出现这样的提示:
cvs init : No CVSROOT specified! Please use the ‘-d’ option
cvs [initn aborted]:or set the CVSROOT environemnt variable
如果你是在不想定义环境变量,你可以用这样的命令:
cvs –d /cvroot init 不过即使你定义了CVSROOT,参数 –d 后的内容也会覆盖它.如果没有错误提示, 恭喜你, 你的CVS 软件库已经建立好了.
剩下的问题是怎样时多用户来使用这个仓库来进行并行的软件开发与版本控制.还有作为CVS 管理员你应该设置你的用户的权限. 此时,你的cvsroot 下有一CVSROOT 子目录.他下面的文件时CVS 的配置文件,用
ls /cvsroot/CVSROOT 有一系列文件,他们的用途分别是:
checkoutlist 支持CVSROOT目录的其它管理文件,允许为各种CVS命令定置信息
commitinfo 在cvs commit命令执行时,这个文件指定乐文件提交时执行的命令
cvswrappers 定义乐一个包装程序当文件登记或检取时会执行.
editinfo 允许你在commit命令启动前在日志信息被记录后执行的脚本
history 跟踪所有影响仓库的命令
loginfo 类似coimmitinfo, 只是在文件提交后执行
modules 允许为一组文件定义一个符号,否则必须为每一个要引用的文件指定cvs仓库的路径名($CVSROOT)
nitify 控制从"watch"来的通知."watch"由"cvs watch add"和"cvs edit" 设置
rcsinfo 为commit log回话指定一个模板.
taginfo 定义乐在任意"tag"操作后执行的程序.
Passwd 缺省没有.存储用户passworld的文件
设置管理权限:
源码管理员应对仓库下的文件和目录设置恰当的许可权限来控制访问. 所有的RCS文件(以,v结尾)是只读方式,仓库中的目录应当对使用者有写权,以便允许其更改.
多个软件库的建立
如果你有几个开发组, 他们的工作毫不此相干,你完全可以建立几个不同的软件库.你要做的只是要重新定义一下环境变量CVSROOT,或者,使用-d 来设置,使用多个软件库的好处是,他们可以在不同的sever上,CVS 1.0 版还不能用一条命令来从不同的软件库中取出文件,在她以后的版本中,你可以将不同SEVER 上的源码取到你的工作目录下. 以下是一个怎样在多软件库下建立工作目录的例子:
cvs -d server1:/cvs co dir1
cd dir1
cvs -d server2:/root co sdir
cvs update
第一条命令建立了一个工作目录,在sever1上取出了文件第三条命令则在sever2 上的软件库中取出了一些文件.然后用所有的文件使sever2 上的文件升级.