在工作目录中经常会有一些文件,但我们却不想将它们置于 cvs 控制之下。 比如那些编译源码产生的目标文件。通常在执行 `cvs update' 命令后, 会为每个不认识的文件打印一行信息(参阅 update output)。
cvs 有一个文件列表(或 sh(1) 文件名模板),将在执行 update
, import
和 release
时忽略它们。 这个文件列表由以下方式构成。
- 这个文件列表初始包括这样的文件名模板:用于 cvs 管理,或是其他的源码控制 系统的文件名称;补丁文件,目标文件,存档文件,和编辑备份文件的名称;以及一些 相关工具产生的文件的名称。当前,默认的忽略文件模板为: RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core
- 如果每个源码库中有 $CVSROOT/CVSROOT/cvsignore
- 如果每个用户的 home 目录中有 .cvsignore
- 环境变量
$CVSIGNORE
所指也将附加在这个列表中。 - 任何 cvs 命令中的 `-I' 选项也附加在其中。
- 当 cvs 遍历目录,目录中的 .cvsignore 将添加到该列表中。 .cvsignore
在以上所列的 5 个地方,使用惊叹号(`!')可以清除忽略列表。用于保存通常被 cvs
给 cvs import
命令指定 `-I !' 将导入所有文件,一般用于导入一些 来自原始出处或者认为源码里面没有多余文件的情况下。然而,检查上述规则,将会发现 美中不足之处;如果发行文件中包括.cvsignore,即使使用 `-I !', CVS 也会按照该模板的规则处理。唯有删除 .cvsignore 文件才能按照最初目的 导入文件。因为这是一个缺点,将来 `-I !' !' 可能会覆盖每个目录中的 .cvsignore。
注意,忽略文件的语法中包含很多行,每行为空格分开的文件名列表。这造成没有一个简单 的方法用于包含空格的文件名,但我们可以用 foo?bar 来匹配 foo bar (当然它也能匹配 fooxbar)。还要注意当前不支持注释。