5. CVS 服务器配置

本节介绍 CVS 服务器端设置和配置的最佳实践。

5.1. CVS 访问控制

我一次又一次被问到的重要问题之一是,是否可以对各种用户在 CVS 仓库中的文件/文件夹/分支等进行访问控制。遗憾的是,CVS 本身不具备内置的访问控制功能,但它确实通过 CVSROOT 仓库中的 readers/writers 文件支持一种基本的访问控制形式。我编写了一组脚本,使用 readers/writers 文件来提供稍微可用的访问控制版本。该脚本在 http://cvspermissions.sarovar.org 上以开源项目形式提供。欢迎随意使用,并告诉我它的效果如何。

5.2. 服务器端脚本

服务器端脚本指的是使 CVS 服务器在事件发生时执行某些脚本的能力。一个有用的常见脚本是验证所有 cvs 提交都包含开发者输入的注释。此过程涉及设置CVSROOT/verifymsg文件,以便在文件签入时运行脚本。

------CVSROOT/verifymsg---------

#Set the verifymsg file to fire a script
DEFAULT /usr/local/bin/validate-cvs-log.sh


------/usr/local/bin/validate-cvs-log.sh ---------

#!/bin/sh
#
# validate-cvs-log.sh logfile
 
# test that log message has some characters in it
if [ `cat $1 | wc -c ` -lt 10 ] ; then
echo "log message too short; please enter a description for the changes"
    exit 1
else
    exit 0
fi

5.3. 服务器通知

可以配置 CVS 服务器,以便在发生提交时通过电子邮件通知。这可用于验证在每日/发布构建过程中是否发生了提交。如果发生此类提交,则根据项目策略,可以忽略这些提交或自动重启整个构建。