使用 cvsignore 忽略某些文件

在工作目录中经常会有一些文件,但我们却不想将它们置于 cvs 控制之下。例如,那些由编译源码所产生的目标文件。通常在执行 cvs update 命令后,cvs 会为每个文件打印一行信息,表示它碰到了不认识的文件[update output 在 附录 A]。

cvs 有一个文件列表(或 sh(1) 文件名模板),它告诉 cvs 执行 update, importrelease 命令时将它们忽略。这个文件列表由以下方式构成。

在以上所列的 5 个地方,使用惊叹号(!)可以清除忽略列表。它用于保存通常被 cvs 忽略的文件。

cvs import 命令指定 -I ! 将导入所有文件,一般用于导入一些来自原始出处或者认为源码里面没有多余文件的情况下。然而,检查上述规则,将会发现一个美中不足之处;如果发行文件中包括 .cvsignore,那么即使使用 -I !,cvs 也会按照该模板的规则处理。唯有删除 .cvsignore 文件才能按照最初目的导入文件。因为这是一个缺点,将来 -I ! 可能会覆盖每个目录中的 .cvsignore

注意,忽略文件的语法中包含很多行,每行由空格来分开所列文件名。这使得没有一个清晰的方法用于包含空格的文件名,但我们可以用 foo?bar 来匹配 foo bar(当然它也匹配 fooxbar)。还需注意当前无法在其中写注释。