それぞれのリポジトリのディレクトリの CVS ディレクトリはファイル 属性などの情報が収められています (CVS/fileattr というファイルで す。)。将来はこのディレクトリには他のファイルが加えられる可能性があり ますから、実装は追加のファイルを静かに無視するのが良いでしょう。
この動作は cvs 1.7 とその後のものだけで実装されています。詳細は Watches Compatibility を参照してください。
fileattr ファイルの書式は以下の形式の登録の連続したものです (‘{’ と ‘}’ は括弧の中のテキストを0回以上繰り返すことができるというこ とです):
ent-type filename <tab> attrname = attrval {; attrname = attrval} <linefeed>
ent-type はファイルでは ‘F’ で、その場合は登録はそのファイ ルの属性を指定します。
ent-type が ‘D’ で、filename が空であると、新しく追加 されたファイルへの既定属性を指定します。
他の ent-type は将来の拡張のために予約されています。CVS 1.9 とそ れ以前のものはファイル属性を書き込むときにいつでもそれらを消すでしょう。 CVS 1.10 とそれ以降はそれらを保存します。
行の順番は関係無いことに注意してください。 fileattr ファイルを書き込むプログラムは便利な様に再編成するかもしれま せん。
ファイル名でのタブとラインフィード、attrname での ‘=’, attrval での ‘;’、などを引用する方法は今はありません。
習慣では、attrname は CVS により特別な意味を持っている属性は ‘_’ で始まります。他の attrname は使用者定義の属性のために あります (もしくは、実装が使用者定義の属性のサポートを始めたときにそう なるでしょう)。
作りつけの属性です:
_watched
_watchers
cvs
edit
コマンド (もしくはそれと等価なもの) が発生したときで、
hostname と pathname は作業ディレクトリのためです。
例:
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 は 1975年1
月8日にマシン workstn1
のディレクトリ /home/sue/cs編集を
始めました。この例を表現するために、‘D’, ‘Ffile1’,
‘Ffile2’ の後に空白を表示していますが、実際は単独のタブ文字がそこ
にあり、空白があってはいけません。