匿名 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 几乎是您唯一的选择。
配置 cvs(1) 使用匿名 CVS 仓库可以简单的设定 CVSROOT 环境变量指向 FreeBSD 项目的 anoncvs 服务器之一。到此书写作为止, 下面的服务器都是可用的:
奥地利: :pserver:[email protected]:/home/ncvs (使用 cvs login 然后在提示输入口令时输入任意口令。)
法国: :pserver:[email protected]:/home/ncvs (pserver (口令是 “anoncvs”), ssh (没有口令))
德国: :pserver:[email protected]:/home/ncvs (Use cvs login and enter the password “anoncvs” when prompted.)
德国: :pserver:[email protected]:/home/ncvs (rsh, pserver, ssh, ssh/2022)
日本: :pserver:[email protected]:/home/ncvs (Use cvs login and enter the password “anoncvs” when prompted.)
美国: [email protected]:/home/ncvs (仅 ssh - 无口令)
SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 [email protected] SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pub
USA: [email protected]:/home/ncvs (仅 ssh - 无口令)
SSH HostKey: 1024 8b:c4:6f:9a:7e:65:8a:eb:50:50:29:7c:a1:47:03:bc [email protected] SSH2 HostKey: 2048 4d:59:19:7b:ea:9b:76:0b:ca:ee:da:26:e2:3a:83:b8 ssh_host_dsa_key.pub
因为 CVS 实际上允许 “检出” 曾经存在的 (或者,某种情况下将会存在) FreeBSD
源代码的任意版本, 您需要熟悉 cvs(1) 的版本 (-r
) 参数, 以及在 FreeBSD 代码库中可用的值。
有两种标签,修订标签和分支标签。 修订标签特指一个特定的修订版本。含义始终是不变的。 分支标签,另一方面, 指代给定时间给定开发分支的最新修订, 因为分支标签不涉及特定的修订版本, 它明天所代表的含义就可能和今天的不同。
第 A.7 节 包括了用户可能感兴趣的 修订标签。 另外,这里面没有一个可以用于 Ports Collection, 因为它没有多个修订版本。
当您指定一个分支标签,您通常会得到那个开发分支的文件的最新版本。
如果您希望得到一些旧的版本,您可以用 -D date
标记制定一个日期。 察看 cvs(1)
手册页了解更多细节。
在这之前强烈建议您通读 cvs(1) 的手册页, 这里有一些简单的例子来展示如何使用匿名 CVS:
例 A-1. 从 -CURRENT 检出些东西 (ls(1)):
% setenv CVSROOT :pserver:[email protected]:/home/ncvs % cvs login 在提示符处,输入密码 “anoncvs”. % cvs co ls
例 A-2. 通过 SSH 检出整个 src/ 代码树:
% cvs -d [email protected]:/home/ncvs co src The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established. DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.
例 A-3. 检出 6-STABLE 分支中的 ls(1) 版本:
% setenv CVSROOT :pserver:[email protected]:/home/ncvs % cvs login 在提示符处,输入密码 “anoncvs”。 % cvs co -rRELENG_6 ls
例 A-4. 创建 ls(1) 的变化列表(用标准的 diff)
% setenv CVSROOT :pserver:[email protected]:/home/ncvs % cvs login 在提示符处,输入密码 “anoncvs”。 % cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
例 A-5. 找出可以使用的其它的模块名:
% setenv CVSROOT :pserver:[email protected]:/home/ncvs % cvs login 在提示符处,输入密码 “anoncvs”. % cvs co modules % more modules/modules
下面附加的资源可能对学习 CVS 有帮助:
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<[email protected]>.
关于本文档的问题请发信联系 <[email protected]>.