PostgreSQL 8.2.3 中文文档
后退快退附录F. CVS 仓库快进前进

F.3. 通过 CVSup 获取源代码

使用匿名 CVS 检索 PostgreSQL 源码树的另一个方法是 CVSup 。CVSup 是由 John Polstra () 开发的,用于为 FreeBSD 项目 分发 CVS 仓库和其它文件树。

使用 CVSup 的主要优点是它可以可靠地在你的本地机器上复制整个 CVS 仓库,允许快速的本地使用 cvs 操作(比如 logdiff)。其它优点包括与 PostgreSQL 服务器的快速同步,因为它使用一种高效的流传输协议,该协议只传输最后更新(以来)的修改。

F.3.1. 准备一个 CVSup 客户端系统

做这件事需要为 CVSup 准备两个目录区域:一个本地 CVS 仓库(或者就是一个目录区域—如果你只是抓取一个快照而不是整个仓库,见下文)和一个本地 CVSup 簿记区域。这些东西可以在同一个目录树里面共存。

确定你将在哪个目录里面安放你的 CVS 仓库的本地拷贝。在的一个系统中,最近在 /home/cvs/ 设立了仓库,但是以前把它放在 /opt/postgres/cvs/ 里的一个 PostgreSQL 开发版的目录树里。如果你想把你的仓库放在 /home/cvs/ ,那么把

setenv CVSROOT /home/cvs

放到你的 .cshrc 文件中,或者根据你用的 shell 把类似的行放到 .bashrc.profile 文件里。

cvs 仓库区域必须被初始化。一旦设置了 CVSROOT ,那么初始化可以简单地用下面的命令完成:

cvs init

之后,你列举 CVSROOT 目录时,你至少能看到一个名为 CVSROOT 的目录。

$ ls $CVSROOT
CVSROOT/

F.3.2. 运行 CVSup 客户端

先证实 cvsup 在你的路径里;在大多数系统上你可以键入下面命令核实这些

which cvsup

然后,只需要用下面命令运行 cvsup

cvsup -L 2 postgres.cvsup

这里的 -L 2 打开了一些状态消息,这样你就可以监控更新的进展过程,而 postgres.cvsup 是你赋予你的 CVSup 配置文件的路径和名称。

这里是一份为特定安装修改过的 CVSup 配置文件,它维护着一个完整的本地 CVS 仓库:

# This file represents the standard CVSup distribution file
# for the PostgreSQL ORDBMS project
# Modified by lockhart@fourpalms.org 1997-08-28
# - Point to my local snapshot source tree
# - Pull the full CVS repository, not just the latest snapshot
#
# Defaults that apply to all the collections
*default host=cvsup.postgresql.org
*default compress
*default release=cvs
*default delete use-rel-suffix
# enable the following line to get the latest snapshot
#*default tag=.
# enable the following line to get whatever was specified above or by default
# at the date specified below
#*default date=97.08.29.00.00.00

# base directory where CVSup will store its 'bookmarks' file(s)
# will create subdirectory sup/
#*default base=/opt/postgres # /usr/local/pgsql
*default base=/home/cvs

# prefix directory where CVSup will store the actual distribution(s)
*default prefix=/home/cvs

# complete distribution, including all below
pgsql

# individual distributions vs 'the whole thing'
# pgsql-doc
# pgsql-perl5
# pgsql-src

在上面的步骤里,如果你声明 repository 而不是 pgsql ,那么你就会得到 cvsup.postgresql.org 上面的一个完整的仓库拷贝,包括其 CVSROOT 目录。如果这么做,你可能会希望排除那些目录中的某些文件,以便你做本地的修改,方法是使用一个 refuse 文件。比如,对于上面的设置,你可以在 /home/cvs/sup/repository/refuse 里面放下面这些行:

CVSROOT/config*
CVSROOT/commitinfo*
CVSROOT/loginfo*

参考 CVSup 的手册页获取如何使用拒绝(refuse)文件的信息。

下面的是 PostgreSQL ftp 站点 建议的 CVSup 配置文件,它将只是抓取目前(版本)的快照:

# This file represents the standard CVSup distribution file
# for the PostgreSQL ORDBMS project
#
# Defaults that apply to all the collections
*default host=cvsup.postgresql.org
*default compress
*default release=cvs
*default delete use-rel-suffix
*default tag=.

# base directory where CVSup will store its 'bookmarks' file(s)
*default base=/usr/local/pgsql

# prefix directory where CVSup will store the actual distribution(s)
*default prefix=/usr/local/pgsql

# complete distribution, including all below
pgsql

# individual distributions vs 'the whole thing'
# pgsql-doc
# pgsql-perl5
# pgsql-src

后退首页前进
CVS 树的组织上一级文档