下一个: , 上一个: Attic, 上层: Repository storage


2.2.5 在仓库中的 CVS 目录

在仓库中的每一个目录中都存在一个 CVS 目录,其中存放一些象文件属性这样的信息(在 CVS 目录中有一个 CVS/fileattr 文件)。 在将来会有附加的文件放入到这个目录中,实现应默默忽略附加的文件。

这个特性只会出现在 cvs 1.7 版本之后;详细请看 Watches Compatibility

fileattr 文件有一系列如下格式的条目(entriese)组成(其中 `{' 和 `}' 意思是括号内文字可以没有或重复多次):

ent-type filename <tab> attrname = attrval {; attrname = attrval} <linefeed>

ent-type 为 `F' 表示文件,该条目设置文件的属性。

ent-type 为 `D',并且 filename 为空,给新添加的文件指定默认属性。

其余 ent-type-type 留给以后扩展使用。 cvs 1.9 和更老的版本在任何写文件属性的时候会把它们删除。 cvs 1.10 和后续版本将其保留。

注意,每行的先后次序不重要;任何程序可以按它的习惯重新排列。

当前无法作到文件名中带 TAB 或换行,attrname 里的 `=',attrval 里的 `;',等等。 注意:有些实现还无法处理任何字段中的 NULL 字符,但实现已注意此事。

习惯上在 attrname 名前加 `_' 表示在 cvs 中有特殊含义;其余为用户自定义类型的属性(或将是,一旦实现开始支持用户定义的属性)。

内置属性:

_watched
出现意思是该文件已被监视(watched),并且应以只读检出。
_watchers
监视此文件的用户。值为 watcher > type { , watcher > type } 其中watcher是用户名,type 是空或由 `+' 隔开的 edit,unedit,commit (什么都没有就是空,无需 "none" 或 "all" 关建字)。
_editors
编辑此文件的用户。值为 editor > val { , editor > val } 其中 editor 是用户名,valtime+hostname+pathname, 其中 timecvs edit 执行的时间(或类似的),hostnamepathname 是工作目录。

例子:

     Ffile1 _watched=;_watchers=joe>edit,mary>commit
     Ffile2 _watched=;_editors=sue>8 Jan 1975+workstn1+/home/sue/cvs
     D _watched=

意味着文件 file1 应按只读检出。 另外 joe 监视此文件的 edit 而 mary 监视此文件 commit。 文件 file2 应按只读检出;sue 在 8 Jan 1975 开始编辑它,目录是 /home/sue/cvs,机器为 workstn1。 其余文件都是按只读检出。 作为演示,`D'、`Ffile1'、`Ffile2' 后面有一个空格,其实该用 TAB 字符而无空格。