“cvs”标签相关文章 »

jul 31

日常开发工作中使用的是 Emacs + ECB 环境, ECB 是建立在 CEDET 的基础上,CEDET 使用 Semantic 作为代码分析工具,所以在 Emacs 编辑目录中会生成类似“semantic.cache”这样的缓存文件,在我的 LinCVS (新版本叫 CrossVC )中会显示在“Non-controlled files”中,比较影响正常的使用,因此可以使用 CVS 的 ignore 机制将不需要的文件隐藏起来。但这些临时文件分散在各个子目录中,想要在每个子目录中创建一个 .cvsignore 文件是不太现实的,幸好 CVS 支持全局设置,可以在个人用户的 Home 目录设置一个全局生效的 .cvsignore 文件,比如我现在的 ~/.cvsignore 文件内容如下:

.cvsignore
semantic.cache

第一行是将 CVS ignore 文件本身隐藏起来,第二行是隐藏 Semantic 生成的临时文件。这样设置后,不需要在 CVS 的各个子目录中重复设置,全局生效。

事实上,CVS 支持多种 ignore 机制,具体方式如下:

  • 服务器端 CVS 仓库的 $CVSROOT/CVSROOT/cvsignore 文件,这个文件控制着所有用户的操作;
  • 每个用户 Home 目录中 .cvsignore 文件;
  • 环境变量 $CVSIGNORE 的设置;
  • 任何 cvs 命令中 -I 选项;
  • cvs 遍历目录时子目录中的 .cvsignore 文件;

CVS ignore 文件中可以包含多行,每行可以设置多个文件,文件名之间使用空格分开。因此,如果你的文件名中包含空格,在 CVS ignore 文件中将被区别对待,忽略功能就会失效,不过我们可以使用 foo?bar 来匹配“foo bar”。

dirk 发表于 2009-07-31 Friday