下一个: File permissions, 上层: Repository storage
仓库中全部目录结构完全对应于工作目录中的目录结构。比如,假设仓库在
/usr/local/cvsroot
下面是一个可能的目录结构(只显示目录):
/usr
|
+--local
| |
| +--cvsroot
| | |
| | +--CVSROOT
| (administrative files)
|
+--gnu
| |
| +--diff
| | (source code to gnu diff)
| |
| +--rcs
| | (source code to rcs)
| |
| +--cvs
| (source code to cvs)
|
+--yoyodyne
|
+--tc
| |
| +--man
| |
| +--testing
|
+--(other Yoyodyne software)
与目录一起的是在版本控制下的每个文件的历史文件(history files)。这些文件的名称 是在对应在工作目录中的文件名称后面加上 `,v'。下面是仓库中 yoyodyne/tc 目录的可能情况:
$CVSROOT
|
+--yoyodyne
| |
| +--tc
| | |
+--Makefile,v
+--backend.c,v
+--driver.c,v
+--frontend.c,v
+--parser.c,v
+--man
| |
| +--tc.1,v
|
+--testing
|
+--testpgm.t,v
+--test2.t,v
历史文件中包括有足够的信息来再创建文件的任何一个修订版,另外还记录有所有提交信息
的日志,其中包括提交者的用户名。这些历史文件就是以前的 RCS files,因为
第一个以这种存储文件格式方式来进行版本控制的系统是 rcs。关于文件格式的详细
描述请看 rcs 发布的 man 中关于 rcsfile(5) 的信息,或者是
cvs 源代码中的 doc/RCSFILES 文件。这种文件格式已经应用的十分广泛—
除了 cvs 和 rcs 之外还有很多其它的版本控制系统至少可以导入这种格式的
历史文件。
cvs 中用的文件格式与标准的 rcs 文件格式有一些差别。最大的差异在于魔术 分支;关于这些的更多信息见 Magic branch numbers。另外 cvs 中有效的 标签名称是 rcs 所能接受的一个子集;关于 cvs 的规则见 Tags。