名称
sccsfile ― SCCS ファイルのフォーマット
説明
SCCS ファイルは論理的に 6 つの部分に分けられる ASCII 形式の ファイルです。
| checksum | | 1 行目を除いたファイル中の文字の総数 |
| delta table | | 各デルタについての情報 |
| user names | | デルタを追加できるユーザーのログイン名または数字のグループ
ID 、あるいはその両方 |
| flags | | 内部キーワードの定義 |
| comment | | ファイルについて任意に記述する情報 |
| body | | 制御行の混ざった実際のテキスト行 |
SCCS ファイルには、全体を通じて、 ASCII 形式の SOH (start of heading) 文字 (8 進数の
001) で始まる行があります。 今後、この文字を 制御文字 と呼び、 @ で表します。 以下の説明にある行のうち、制御文字で始まるように書かれていないものは、行頭に制御文字を入れられません。
SCCS ファイルのすべての行は、 BUFSIZ ( <stdio.h で定義) の文字数に制限されています。
DDDDD という形式のエントリーは、5 桁の数字列
(00000 と 99999 の間の数) を表します。
SCCS ファイルの各論理部分について、以降で詳しく説明します。
| Checksum | | チェックサムは、 SCCS ファイルの 1 行目です。 その形式は、次のようになります。 チェックサムの値は、1 行目の文字を除く全文字の合計です。 文字列 @h は、
0x01 と 0x68 の 2 バイトからなる マジックナンバー を与えます (別バージョンの UNIX ライクなオペレーティングシステムでも、通常この値を使います。しかし、その場合は違うバイト順による 1 つの数で、表示または記述されている場合があります)。 |
| Delta table | | デルタテーブルは、以下のような形式のいくつかのエントリーで構成されます。 @s DDDDD/DDDDD/DDDDD @d <type> <SID> yr/mo/da hr:mi:se <pgmr> DDDDD DDDDD @i DDDDD ... @x DDDDD ... @g DDDDD ... @m <MR number> . . . @c <comments> ... . . . @e 第 1 行 (@s) には、挿入された行数/削除された行数/未変更の行数が、それぞれ入っています。
第 2 行 (@d) には、デルタの種類 (現在のところ、正常ならば D で、 取り除かれていれば R)、 デルタの SID (SCCS ID)、デルタの作成日時、作成時の実際のユーザー
ID に対応するログイン名、このデルタとその前のデルタのシリアル番号が、それぞれ入っています。 @i, @x, および @g の各行には、それぞれ、含まれているデルタのシリアル番号、除外されているデルタのシリアル番号、無視されているデルタのシリアル番号が、入っています。
これらの行は、必要に応じて指定します。 @m の行 (オプションです) には、それぞれデルタに対応する MR 番号が入っていて、 @c の行には、デルタに対応するコメントが入っています。 @e の行で、デルタテーブルのエントリーが終わります。 |
| User names | | ファイルにデルタを追加できるユーザーのログイン名または数字のグループ
ID 、あるいはその両方が、ニューラインで区切られたリストになっています。
これらのログイン名または数字のグループ ID、あるいはその両方を含む行は、 @u の行と @U の行で囲まれています。 リストが空の場合には、だれでもデルタを作ることができます。 ! で始まる行はどれも、特定のグループやユーザーがデルタを作るのを禁止します。 |
| Flags | | 内部で使われるキーワードです (その使用法についての詳細は、 admin(1) を参照)。 各フラグ行は、次のような形式をとります。 @f <flag> <optional text> 次はようなフラグが定義されています。 @f t <type of program> @f v <program name> @f i <keyword string> @f b @f m <module name> @f f <floor> @f c <ceiling> @f d <default-sid> @f n @f j @f l <lock-releases> @f q <user defined> @f z <reserved for use in interfaces> 上記のフラグの機能は以下のとおりです。 | t | | %Y% 識別キーワードの置換を指定します。 | | v | | コメントに加えて、 MR 番号の入力を求めるのを制御します。
オプションのテキストがある場合には、それで MR 番号妥当性チェックプログラムを指定します。 | | i | | "No id keywords"というメッセージが、警告/エラー表示されるのを制御します。 i フラグがない場合には、このメッセージは単なる警告ですが、 i フラグがあるときには、このメッセージは致命的なエラーとなります
(このファイルに対して get が実行できなかったり、デルタが作られなかったりします)。 | | b | | b フラグがある場合には、 get コマンドで -b オプションを使い、デルタツリーに分岐を作成できます。 | | m | | %M% 識別キーワードの交換テキストの最初の選択を指定します。 | | f | | "floor"リリースを指定します。"floor"リリースとは、それより下にはデルタを追加できないリリースです。 | | c | | "ceiling"リリースを指定します。"ceiling"リリースとは、それより上にはデルタを追加できないリリースです。 | | d | | get コマンド上で指定のないときに使われる、デフォルトの
SID を指定します。 | | n | | 新 リリースでデルタが作られるとき、飛ばされるリリースがありますが
(例えば、デルタ 2.7 の後にデルタ 5.1 が作られたとき、リリース 3 と 4 は飛ばされます)、 delta がこれに「null」デルタ ( 無 変更を適用するデルタ) を挿入するようにします。 n フラグがないと、飛ばされたリリースは完全に空になります。 | | j | | get を、同じ SID ならば 並行編集できるようにします。
制限条項については admin(1) を参照してください。 | | l | | 編集できないように ロックする リリースの リスト を指定します ( -e オプションの付いた get(1))。 | | q | | %Q% 識別キーワードの置換を指示します。 | | z | | ある種の特殊なインタフェースプログラムで使われます。 |
|
| Comment | | 任意のテキストを @t の行と @T の行で囲みます。
コメントの項には、通常、そのファイルの目的の説明を入れます。 |
| Body | | テキスト行と制御行で構成されます。 テキスト行の行頭は制御文字ではなく、制御行の行頭は制御文字です。
制御行には、次の 3 種類あります。 | 種類 | | 表記 | | insert | | @I DDDDD | | delete | | @D DDDDD | | end | | @E DDDDD 数字列は、その制御行の適用されるデルタに対応するシリアル番号です。 |
|
警告
SCCS ファイルの長さは自由ですが、テキストファイル自体の行数は、99999 行を超えられません。
参照
admin(1), delta(1), get(1), prs(1)