建立 CVS 储存库 (repository) - 以 FreeBSD 的方式 | ||
---|---|---|
上一页 |
FreeBSD 项目自己使用一个有点不同的配置,那就是同时也使用 FreeBSD CVSROOT 中的 freebsd 子目录。 因为大量的 committer 必须在相同的用户组中, 因此项目写了一个简单的 wrapper 来确保 committer 可以正确的提交, 并配置储存库的用户组名称。
如果你的储存库也需要这样的功能,那么下面就会介绍如何建立, 不过首先要先来看一段复杂的概述。
access - 此文件用来控制储存库的存取。 你应该编辑并加入所有在项目中的成员。
freebsd/commitmail.pl - 此文件已经不再使用了, 只是因为历史原因而保留。 你不应更动此文件。
freebsd/cvswrap.c - 此 CVS wrapper 源代码是用来建立检查所有存取的工作。更多的信息在稍后会提出。 你应该编辑 ACCESS 和 REALCVS 的路径以符合你的配置。
freebsd/mailsend.c - 此文件是 FreeBSD 设定 mailing lists 需要的, 你不应更动此文件。
只把你的用户名加到 access 中。
编辑 cvswrap.c 的路径以符合你的配置, 定义在大写的 ACCESS 中。 同时如果默认值不符合你的情况的话也应该修改本地实际的 cvs 程序所在位置。 原始的 cvswrap.c 希望替代服务器端的 CVS 程序, 例如将其改名为 /usr/bin/ncvs。
我的 cvswrap.c 是这样:
#define ACCESS "/local/cvsroot/CVSROOT/access" #define REALCVS "/usr/bin/ncvs"
接下来是建立 wrapper 来确认你在提交时是在正确的用户组中。 在你的 CVSROOT 中的 cvswrap.c 要能够使用。
在你完成编辑并加入正确的路径后我们要来编译源代码:
% cc -o cvs cvswrap.c
然后进行需要配置(此步骤需要 root 权限):
# mv /usr/bin/cvs /usr/bin/ncvs # mv cvs /usr/bin/cvs # chown root:ncvs /usr/bin/cvs /usr/bin/ncvs # chmod o-rx /usr/bin/ncvs # chmod u-w,g+s /usr/bin/cvs
这会将 wrapper 安装成预设的 cvs 程序, 请确定任何要使用储存库的人应该有正确的存取权限。
现在你可以删除所有在储存库用户组中的使用者,所有的存取控制会经由 wrapper 完成,同时 wrapper 会配置存取的正确用户组。
你的 wrapper 现在应该已经安装好了,你当然也可以强制提交 access 来测试是否正常:
% cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access
同样地,如果有错误,检查是否上述所有步骤都有正确的执行。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.