上一个: Variables, 上层: Administrative files


C.9 CVSROOT/config 配置文件

config 管理文件包含影响 cvs 行为的各种设定。其语法与其他的管理文件 略有不同。不会扩展变量。以 `#' 开头的行是注释。 其他的行以关键字,`=' 和值组成。要留意语法要求很严格。额外的空格与制表符 都不允许。

现在定义的关键字有:

RCSBIN=bindir
cvs 1.9.12 到 1.9.18 之间的版本,该设置告诉 cvs 用于在 bindir 目录里面搜索 rcs 程序。当前的 cvs 不再使用 rcs 程序;为了兼容 该设置仍被保留,但不起任何作用。


SystemAuth=value
如果 value 是 `yes',pserver 将在 CVSROOT/passwd 没有对应用户 的情况下检查系统用户。如果设为 `no',那么所有的 pserver 用户都必须在 CVSROOT/passwd 里面存在。默认使用 `yes'。更多 pserver 的信息, 参阅 Password authenticated


LocalKeyword=value
指定标准关键字的本地别名。例如,`LocalKeyword=MYCVS=CVSHeader'。 更多本地关键字的信息,参阅 Keyword substitution


KeywordExpand=value
指定 `i' 开始的可扩展的关键字列表(例如,`KeywordExpand=iMYCVS,Name,Date'), 或者 `e' 开始的不可扩展的关键字列表(例如,`KeywordExpand=eCVSHeader')。 更多关键字扩展的信息,参阅 Configuring keyword expansion


TopLevelAdmin=value
修改 `checkout' 命令,除了在检出目录里面,还在新工作目录顶级创建 `CVS' 目录。默认值为 `no'。

如果你要在工作目录的顶级,而不是检出的子目录执行许多命令,该选项就很有用。 在那里创建 CVS 目录意味着你不用为每个命令指定 CVSROOT。它还为 CVS/Template 文件提供了一个场所 (参阅 Working directory storage)。


LockDir=directory
cvs lock 文件置于 directory 目录,而不是仓库中的目录。这对于 需要给用户仓库访问权限,可以只给它们 directory 的写权限,而不是仓库。 还可以将 lock 放到快速的使用内存的文件系统,以加速仓库的加锁和解锁。 你需要自己创建 directorycvs 将在需要的时候创建 directory 下的子目录。关于 cvs 锁,参阅 Concurrency

在启用 LockDir 选项之前,确保你查找并删除了 cvs 1.9 或早期版本。这些版本 不支持 LockDir,并不会给出不支持的错误信息。结果将会是一些 cvs 用户将锁 放在这个地方,其他用户放在另外的地方,仓库自然就被破坏了。cvs 1.10 仍不支持 LockDir,但是假如运行的仓库启用了 LockDir,它会打印一个警告。


LogHistory=value
控制哪些将记录到 CVSROOT/history 文件 (参阅 history)。 默认是 `TOEFWUPCGMAR' (或简写 `all'。任何默认子集都合法。 (例如,只记录对 *,v 文件的修改,使用 `LogHistory=TMAR'。)


RereadLogAfterVerify=value
修改 `commit' 命令,使得 CVS 在执行完 verifymsg 里面指定的程序之后, 重读日志消息。当 VALUE 是 `yes' 或 `always' 时,指明总是去重读日志消息; `no' 或 `never',指明不会去重读; 或者 value 是 `stat', 指明文件应该在重读之前通过文件系统 `stat()' 函数检测,判断是否已经修改 (参阅下面警告)。默认值为 ``always'。

注意: `stat' 模式可能会造成 CVS 在提交每个目录时暂停数秒。这也可能 不消耗多少 IO 和 CPU,但还是不建议在大型的仓库里面使用

参阅 verifymsg, 以了解更多关于如何使用 verifymsg 的信息。


UserAdminOptions=value
控制哪些 cvs admin 命令(参阅 admin))选项可以被不属于 cvsadmin 组里面的用户使用。value 字符串是允许的选项列表。不属于 cvsadmin 组的用户,如果执行 cvs admin 的选项没有列在其中,将获得选项受限的错误消息。

如果服务器上没有 cvsadmin 组存在,cvs 将忽略 UserAdminOptions 关键字 (参阅 admin)。

没有指定时,UserAdminOptions 默认为 `k'。也就是说,默认只允许 cvsadmin 组以外的用户通过 cvs admin admin' 命令修改文件的关键字 扩展模式。

例如,让 cvsadmin 组以外的用户可以使用 cvs admin 命令修改默认的 关键字替换模式,锁住修订版,开锁修订版和替换日志消息, 设定为 `UserAdminOptions=klum'。


UseNewInfoFmtStrings=value
指定 cvs 在提交支持文件(参阅 commit files)时,是支持新的还是旧的命令行 模板模型。此配置变量准备放弃,现在只是给用户一定时间来更新旧仓库,在删除旧语法 之前可以使用新的格式化字符串。关于更新仓库以支持新模型, 请参考 Updating Commit Files

注意,新的仓库(使用 cvs init 命令创建)将此值设为 `yes', 但默认值是 `no'。


ImportNewFilesToVendorBranchOnly=value
指定 cvs import 是否总是执行如命令行上使用 `-X' 标识的行为。 value 可以是 `yes' 或 `no'。如果设为 `yes',所有的用户执行 cvs import 的结果,就像 `-X' 已经设置。默认值为 `no'。


PrimaryServer=CVSROOT
指定后,如果 CVSROOT 指定的仓库与当前访问的不同,那么服务器转换为 CVSROOT 的透明代理用于写请求。作为 CVSROOT 一部分的 hostname, 必须与当前工作中的主服务器 uname 命令返回的字串相同。域名解析是通过 组合的 named/etc/hosts 的行,以及 Network Information Service (NIS 或 YP),这取决于系统的配置。

当前只支持 `:ext:' 方式(实际上,`:fork:' 也支持,但只用于测试 - 如果你 发现通过 `:fork:' 方式有其他的用途,请发一个提示到 bug-cvs@gnu.org)。 参阅 Write proxies 了解有关配置和使用写代理的情况。


MaxCommentLeaderLength=length
设置一些尺寸,以字节,或者 `k', `M', `G', `T' 让前面的数字 分别解释为千字节,兆字节,亿字节,或 T 字节,使 $Log$ 关键字(参阅 Keyword substitution),在一行里大于指定 length 字节时被忽略 (或者退到 RCS 档案文件里设置的 comment leader - 参见下面的 UseArchiveCommentLeader)。默认在检出时只处理 20 字节,是防止用户疏忽, 没有将二进制文件标明时,二进制文件里面含有 $Log$ 关键字的情况。


UseArchiveCommentLeader=value
设为 true,如果前面文本里有 $Log$ 关键字,超过 MaxCommentLeaderLength 设置的字节,如果有,会被替代。如果在档案文件里面 没有设置 comment leader,或者 value 设为 `false',关键字将不会被替换 (参阅 Keyword list)。为了强制使用 RCS 档案文件里面的 comment leader(并且档案 文件里面没有设置 comment leader,文件里面的 $Log$ 扩展会跳过),设置 valueMaxCommentLeaderLength 设为 0