A.4. 匿名 CVS
上一页 | 附录 A. 获取 FreeBSD | 下一页

## 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` 文件，然后试试重新登录。

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

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

### A.4.2. 使用匿名 CVS

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

- 法国: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (使用 pserver 模式时， 用 `cvs login` 配合口令 “anoncvs” 来登录。 如果使用的是 ssh， 则不需要口令。)

- 台湾地区: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs (使用 pserver 模式时， 用 `cvs login` 配合口令 “anoncvs” 来登录。 如果使用的是 ssh， 则不需要口令。)

  SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub

- 美国: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (使用 ssh 时， 请使用协议版本 2， 不需要口令。)

  SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub

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

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

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

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

### A.4.3. 示例

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

例 A.1. 从 -CURRENT 检出些东西 (ls(1))：
`%` `setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs` `%` `cvs login` >在提示符处，输入任意密码 “password”. `%` `cvs co ls`
例 A.2. 通过 SSH 检出整个 `src/` 代码树：
`%` `cvs -d anoncvs@anoncvs1.FreeBSD.org:/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:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs` `%` `cvs login` 在提示符处，输入任意密码 “password”。 `%` `cvs co -rRELENG_8 ls`
例 A.4. 创建 ls(1) 的变化列表(用标准的 diff)
`%` `setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs` `%` `cvs login` 在提示符处，输入任意密码 “password”。 `%` `cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls`
例 A.5. 找出可以使用的其它的模块名：
`%` `setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs` `%` `cvs login` 在提示符处，输入任意密码 “password”。 `%` `cvs co modules` `%` `more modules/modules`

### A.4.4. 其他资源

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

- CVS 教程， 来自加州州立理工大学。

- CVS 主页， CVS 开发和支持社区。

- CVSweb 是 FreeBSD 项目的 CVS web 界面。

上一页 | 上一级 | 下一页
A.3. BitTorrent | 起始页 | A.5. 使用 CTM

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

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.