上一个: Locks, 上层: Repository storage


2.2.7 文件是如何保存在 CVSROOT 目录中的

$CVSROOT/CVSROOT 目录包含有各种管理文件。 在某些方面这个目录就象仓库中任何其它目录一样;它包含了 rcs 文件,后缀名为 `,v',许多 cvs 命令以同样的方式对它进行操作。 当然,还是有点小小的差异。

对每一个管理文件,还有 rcs 文件,还有一个检出的副本。 例如,有一个 rcs 文件 loginfo,v 和一个包含有对 loginfo,v 的最新修改的文件 loginfo。 当你检入一个管理文件时,cvs 就会显示

     cvs commit: Rebuilding administrative file database

并在 $CVSROOT/CVSROOT 目录中更新已检出的副本。 如果它没这样做,那肯定出了问题(参阅 BUGS)。 为了使你自己的文件加进用这种方式更新文件中,你可以把它们加入到管理文件的 checkoutlist 中(参阅 checkoutlist)。

在默认的情况下,modules 文件按上面所说的方式运作。 如果 modules 文件很大,把它作为一个纯文本文件存储可能会使得查找模块变慢(我不知道现在人们是否还象当初 cvs 有此特点时那样关心这个问题; 我也没有看过有关的评测)。 因此,对 cvs 源代码进行合适的编辑,人们可以把模块文件保存在一个使用 ndbm 界面如 Berkeley db 或者 GDBM 的数据库中。 如果使用这个选项,那么模块数据库将被存在文件 modules.dbmodules.pag 和/或 modules.dir 中。

关于各种管理文件的意义,请参考 Administrative files