A.4 匿名 CVS

A.4.1 概述

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

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

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

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

A.4.2 使用匿名 CVS

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

  因为 CVS 实际上允许 “检出” 曾经存在的 (或者,某种情况下将会存在) FreeBSD 源代码的任意版本, 您需要熟悉 cvs(1) 的版本 (-r) 参数, 以及在 FreeBSD 代码库中可用的值。

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

  第 A.7 节 包括了用户可能感兴趣的 修订标签。 请注意, 这些标签并不适用于 Ports Collection, 因为它并不包含多个开发分支。

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

A.4.3 示例

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

例 A-1. 从 -CURRENT 检出些东西 (ls(1)):

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
>在提示符处,输入任意密码 “password”.
% cvs co ls
     

例 A-2. 通过 SSH 检出整个 src/ 代码树:

% cvs -d [email protected]:/home/ncvs co src
The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.

例 A-3. 检出 8-STABLE 分支中的 ls(1) 版本:

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入任意密码 “password”。
% cvs co -rRELENG_8 ls
     

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

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入任意密码 “password”。
% cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls
     

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

% setenv CVSROOT :pserver:[email protected]:/home/ncvs
% cvs login
在提示符处,输入任意密码 “password”。
% cvs co modules
% more modules/modules
     

A.4.4 其他资源

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

本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<[email protected]>.
关于本文档的问题请发信联系 <[email protected]>.