A.3. 匿名 CVS

A.3.1. 概述

匿名 CVS(或人们常说的 anoncvs)是由和 FreeBSD 附带的 CVS 实用工具提供的用于和远程的 CVS 代码库同步的一种特性。 尤其是, 它允许 FreeBSD 用户不需要特殊的权限对任何一台 FreeBSD 项目的官方 anoncvs 服务器执行只读的 CVS 操作。 要使用它,简单的设置 CVSROOT 环境变量指向适当的 anoncvs 服务器, 输入 cvs login 命令 并提供广为人知的密码“anoncvs”,然后使用 cvs(1) 命令像访问任何本地仓库一样来访问它。

Note: cvs login 命令把用来登录 CVS 服务器的密码储存在您的 HOME 目录中一个叫 .cvspass 的文件里。 如果这个文件不存在, 第一次使用 cvs login 的时候可能会出错。 请创建一个空的 .cvspass 文件,然后试试重新登录。

也可以这么说 CVSupanoncvs 服务本质上提供了同样的功能,但是有各种各样 不同的场合可以影响用户对同步方式的选择。简单来说, CVSup 在网络资源利用方面 更加有效,而且是到目前为止在两者之中技术上更成熟的 除了成本方面。要使用 CVSup,在下载任何东西之前 必须首先安装配置特定的客户端, 而且只能用于下载相当大块的 CVSup 称作 collections

相比之下,anoncvs 可以通过 CVS 模块名来从单个文件里检出任何东西并赋给特定的程序 (比如 ls 或者 grep)。 当然,anoncvs 也只适用于对 CVS 仓库的只读操作,所以如果您是想用和 FreeBSD 项目共享的仓库提供本地开发的话, CVSup 几乎是您唯一的选择。

A.3.2. 使用匿名 CVS

配置 cvs(1) 使用匿名 CVS 仓库可以简单的设定 CVSROOT 环境变量指向 FreeBSD 项目的 anoncvs 服务器之一。到此书写作为止, 下面的服务器都是可用的:

CVS 实际上允许“检出” 曾经存在的(或者,某种情况下将会存在)的 FreeBSD 源代码的任意版本,您需要熟悉 cvs(1) 的修订(-r)标签以及 在 FreeBSD 项目仓库中的一些许可值。

有两种标签,修订标签和分支标签。 修订标签特指一个特定的修订版本。含义始终是不变的。 分支标签,另一方面, 指代给定时间给定开发分支的最新修订, 因为分支标签不涉及特定的修订版本, 它明天所代表的含义就可能和今天的不同。

Section A.6 包括了用户可能感兴趣的 修订标签。 另外,这里面没有一个是对 ports collection 可用的因为 ports collection 没有多个修订版本。

当您指定一个分支标签,您通常会得到那个开发分支的文件的最新版本。 如果您希望得到一些旧的版本,您可以用 -D date 标记制定一个日期。 察看 cvs(1) 手册页了解更多细节。

A.3.3. 示例

在这之前强烈建议您通读 cvs(1) 的手册页, 这里有一些简单的例子来展示如何使用匿名 CVS:

Example A-1. 从 -CURRENT 检出些东西(ls(1)) 然后再删除:

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入密码 “anoncvs”.
% cvs co ls
% cvs release -d ls
% cvs logout
     

Example A-2. 检出 ls(1) 在 3.X-STABLE 分支 中的版本:

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入密码 “anoncvs”.
% cvs co -rRELENG_3 ls
% cvs release -d ls
% cvs logout
     

Example A-3. 创建 ls(1) 的变化列表(用标准的 diff)

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入密码 “anoncvs”.
% cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls
% cvs logout
     

Example A-4. 找出可以使用的其它的模块名:

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入密码 “anoncvs”.
% cvs co modules
% more modules/modules
% cvs release -d modules
% cvs logout
     

A.3.4. 其他资源

下面附加的资源可能对学习 CVS 有帮助: