リポジトリの全体構造は、 作業ディレクトリと同じ構造を持つディレクトリで構成されています。 例えば、リポジトリが `/usr/local/cvsroot' であるとすると、 ディレクトリは次に示すようなツリー構造を持ちます (リポジトリとなるディレクトリのみ示しています):
/usr | +--local | | | +--cvsroot | | | | | +--CVSROOT | (管理用ファイル) | +--gnu | | | +--diff | | (GNU diff のソース) | | | +--rcs | | (RCS のソース) | | | +--cvs | (CVS のソース) | +--yoyodyne | +--tc | | | +--man | | | +--testing | +--(その他の Yoyodyne のソフトウェア)
ディレクトリの中身は、管理下にあるファイルの履歴ファイル (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 というバージョン管理システムであったために、
履歴ファイルは RCS ファイルと呼ばれます。
ファイル書式の完全な記述は、RCS の配布セットにある
rcsfile(5) の man
ページを参照して下さい。
このファイル書式は非常に一般的なので、
CVS や RCS 以外のシステムでも、
少くとも理解することができます。