sccsfile ファイル・フォーマット

目的

ソース・コード制御システム (SCCS) ファイルの形式を記述します。

説明

SCCS ファイルは、以下の論理パーツで構成される ASCII ファイルです。

項目 説明
チェックサム 最初の行の文字を除くすべての文字の論理和
デルタ・テーブル 各デルタに関する情報 (タイプ、SCCS 識別番号 (SID) 番号、作成日時、およびデルタに関するコメントを含む)
ユーザー名 SCCS ファイルにデルタを追加したり、SCCS ファイルからデルタを削除したりすることを許可されているユーザーのログイン名、グループ名、または数値グループ ID
ヘッダー・フラグ 一部の SCCS コマンドが SCCS ファイルを処理する方法を定義するフラグ、またはファイル内の識別キーワードの値を定義するフラグ
コメント ファイルに関する記述情報
本文 制御行と混在する実際のテキスト行
注: SCCS ファイル内のいくつかの行は、ASCII SOH (見出し開始) 文字 (8 進数 001) で始まります。 この文字は 制御文字 と呼ばれ、以下のテキストでは @ (アットマーク) としてグラフィカルに表されます。 以下のテキストに記述されている、制御文字で始まらない行には、ソース・ファイルからのテキストが含まれます。 テキスト行を制御文字で始めることはできません。

チェックサム

チェックサムは、SCCS ファイルの最初の行です。 この行の形式は次のとおりです。

@h数値

チェックサム行の制御文字と変数には、以下の意味があります。

項目 説明
@h マジック・ナンバー 064001 8 進数 (または 0x6801) を指定します。
Number SCCS ファイル内のすべての文字の論理和を表します (この行の文字は含みません)。 これは、SCCS ファイルが SCCS コマンドで更新されるたびに再計算され、非 SCCS コマンドによって SCCS ファイルに加えられた損傷の可能性がある変更を検出するために使用されます。

デルタ・テーブル

デルタと呼ばれる変更のグループが SCCS ファイルに作成されるたびに、デルタ・テーブルは新しい項目を作成します。 各項目には、デルタに関する記述情報が含まれます。 @s (アットマーク、英字 s) 文字はデルタ・テーブル項目の先頭を定義し、 @e (アットマーク、英字 e) 文字は項目の末尾を定義します。 作成されたデルタごとに、以下の形式のデルタ・テーブル項目があります。

@s NumberLinesInserted/NumberLinesDeleted/NumberLinesUnchanged
@d DeltaType SIDDate Time UserID Number PreNumber
@i NumbersIncluded . . .
@x NumbersExcluded . . .
@g NumbersIgnored . . .
@m ModificationRequestNumber
@c Comments . . .

デルタ・テーブル項目の制御文字と変数には、以下の意味があります。

項目 説明
@s 各項目の最初の行を指定します。この行には、直前のデルタから挿入され、削除され、未変更の行数が含まれます。
@d 各エントリーの 2 行目を指定します。これには、以下の変数が含まれます。
DeltaType
デルタのタイプ。 文字 d は通常のデルタを指定し、文字 r は rmdel コマンドによって除去されたデルタを指定します。
SID
デルタの SCCS ID (SID)。
Date
デルタが作成された日付 (YY/MM/DD の形式)。
Time
デルタが作成された時刻 (HH:MM: SS の形式)。
UserID
デルタが作成された時点での実ユーザー ID に対応するログイン名。
Number
デルタのシリアル番号。
PreNumber
デルタの先行操作のシリアル番号。
@i -i フラグを指定した get コマンドを使用して、このデルタの作成に組み込まれるデルタのシリアル番号を示します。 この行には複数のデルタ番号を含めることができ、これはオプションです。
@x -x フラグを指定した get コマンドを使用して、このデルタの作成から除外されたデルタのシリアル番号を示します。 この行には複数のデルタ番号を含めることができ、これはオプションです。
@g -g フラグを指定した delta コマンドを使用して、このデルタの作成時に無視されたデルタのシリアル番号を示します。 この行には複数のデルタ番号を含めることができ、これはオプションです。
@m デルタに関連付けられている変更要求 (MR) 番号を示します。 SCCS ファイルには複数の MR 行があり、それぞれに異なる MR 番号が含まれている場合があります。 これらの行はオプションです。
@c デルタに関連したコメント行。 SCCS ファイルには、複数のコメント行を入れることができます。 これらの行はオプションです。
@e デルタ・テーブル項目を終了します。

ユーザー名

ファイルのこのセクションには、ファイルにデルタを追加できるユーザーのログイン名、グループ名、または数値グループ ID のリストが含まれています。 名前と ID は改行文字で区切られます。 このセクションでは、以下の制御文字を使用します。

項目 説明
@u ユーザー名リストの先頭を示す、中括弧で囲んだ行。 この行は、リストの最初の行の前に表示されます。
@U ユーザー名リストの終わりを示す、大括弧で囲んだ行。 この行は、リストの最後の行の後に表示されます。

空のリストを使用すると、すべてのユーザーがデルタを作成できます。 リストは、 -a または -e フラグを指定した admin コマンドを使用して変更されます。

ヘッダー・フラグ

制御コマンドにフラグを立て、SCCS 内で内部的に使用されるキーワードを定義します。 ヘッダー・フラグは、さまざまなフラグを指定した admin コマンドを使用して設定されます。 各行の形式は次のとおりです。

@f Flag Text

ヘッダー・フラグ・セクションの制御文字と変数には、以下の意味があります。

項目 説明
@fb 分岐 get コマンドの -b フラグを使用して、デルタ・ツリーのブランチを作成することができます。
@fc 天井 編集のために get コマンドで検索できる、0 から 9999 までの最大リリース番号を定義します。 このリリース番号は、 上限 リリース番号と呼ばれます。
@fd デフォルトの SCCS ID。 get コマンドで SID を指定しない場合に使用するデフォルトの SID を定義します。 このフラグが設定されていない場合、 get コマンドは最後に作成されたデルタを使用します。
@ff 床 編集のために get コマンドで検索できる 0 から 9999 までの最小リリース番号を定義します。 このリリース番号は、 floor リリース番号と呼ばれます。
@fi ID キーワード。 以下を制御しますNo ID keywordsエラー警告メッセージ。 このフラグが設定されていない場合、メッセージは警告にすぎません。 このフラグが設定されている場合、ID キーワードがないとエラーが発生し、差分は失敗します。
@fj 結合編集。 get コマンドが同じベース SID の同時編集を許可するようにします。
@fl ロック・リリース。 -e フラグを使用して get コマンドで編集できないリリースのリストを定義します。
@fm モジュール名。 11 識別キーワードのモジュール名の置換を定義します。 この値は、デフォルトをオーバーライドするために使用されます。
@fn 変更なし。 新規リリースのデルタが作成されると、 delta コマンドは、スキップされたすべてのリリースに対してヌル・デルタ (変更なしのデルタ・エントリー) を挿入します。 例えば、デルタ 5.1 はデルタ 2.1の後に作成され、リリース 3 および 4 をスキップします。 このフラグを省略すると、スキップされたリリースはデルタ・テーブルから省略されます。
@fq ユーザー定義フラグ。 識別キーワードの置換を定義します。
@ft プログラムのタイプ。 識別キーワードの置換を定義します。
@fv プログラム名。 差分作成に関するコメントに加えて、MR 番号の入力を求めるプロンプトを制御します。 値が割り当てられている場合は、MR 番号妥当性検査プログラムを定義します。

コメント

-t フラグ・オプションを指定した admin コマンドを使用して、記述テキストを含むファイルからコメントを取り出すと、そのファイルの内容がコメント・セクションに表示されます。 通常、コメント・セクションにはファイル全体の目的の説明が含まれ、以下の制御文字が使用されます。

項目 説明
@t コメント・セクションの開始を示す括弧で囲んだ行。 この行は、最初のコメント行の前に表示されます。
@T コメント・セクションの終わりを示す括弧で囲んだ行。 この行は、最後のコメント行の後に表示されます。

本文

本体は、制御行とテキスト行の 2 つのタイプの行で構成されます。 制御行はテキスト行を大括弧で囲みます。 テキスト行には、特定のバージョンのファイルに対して挿入または削除されたテキストが含まれています。 テキストの断片を囲む制御行は、テキストの断片が挿入または削除されたかどうか、およびどのバージョンで挿入または削除されたかを示します。 特定のバージョンのファイルが SCCS ファイルから作成される場合、制御行は、そのバージョンのファイルに対して追加または削除する必要があるテキストの部分を識別します。

制御行は相互にネストすることができるため、テキストの同じ部分を複数の制御行のセットで囲むことができます。 長い SCCS ファイルの本体は、非常に複雑になる可能性があります。 ただし、SCCS コマンドは、SCCS ファイルのさまざまなバージョンを理解するためのより良い方法を提供します。

項目 説明
@I数値 挿入制御行を示します。 Number 変数は、制御行のデルタに対応するシリアル番号を示します。 この制御行と同じシリアル番号を持つ終了制御行の間に挿入されたテキストが、同じシリアル番号に対応するデルタの一部として挿入されました。
@D数値 削除制御行を示します。 Number 変数は、制御行の差分に対応するシリアル番号が Number 変数によって示されることを示します。 この制御行と同じシリアル番号を持つ終了制御行との間で削除されたテキストは、同じシリアル番号に対応するデルタの一部として削除されました。
@E数値 終了制御行を示します。 制御行のデルタに対応するシリアル番号は、 Number 変数で示されます。 これは、挿入または削除されるテキストのセクションの終わりを示します。

テキスト内には、SCCS ファイル・システムに固有の識別キーワードもあります。 これらのキーワードは、SCCS ファイルに関する識別情報を表します。 -e または -k フラグを指定せずに get コマンドを使用すると、これらのキーワードはその値に置き換えられます。 バージョンごとに識別情報が異なるため、識別キーワードは、SCCS ファイル・システムが get コマンドによって要求されたファイルのどのバージョンに対しても正しい識別情報を提供するための簡単な方法を提供します。 キーワードを使用して、いくつかの種類の情報を提供することができます。

  • バージョン識別情報:
    キーワード
    %M% モジュール名。SCCS ファイル内の m ヘッダー・フラグの値。
    %I% SID (1100)
    %R% リリース
    %L% レベル
    %B% ブランチ
    %S% 順序
  • 時刻と日付の情報:
    キーワード
    10 月 11 日 現在の get コマンドの日付 (YY/MM/DD)
    2011年10月24日 現在の get コマンドの日付 (MM/DD/YY)
    01:02:56 現在の get コマンドの時刻 (HH:MM: SS)
    2010年11月5日 適用された最新のデルタが作成された日付 (YY/MM/DD)
    2011年5月10日 最新の適用デルタが作成された日付 (MM/DD/YY)
    6 時 12 分 56 秒 最新の適用 デルタが作成された時刻 (HH:MM: SS)
  • 名前情報:
    キーワード
    /family/aix/vc/8/9/7/3/s.11 SCCS ファイル名
    /family/aix/vc/8/9/7/3/s.11 SCCS ファイルの絶対パス名
  • フラグ値:
    キーワード
    -q SCCS ファイル内の -q ヘッダー・フラグの値。
    -t モジュール・タイプ。SCCS ファイル内の -t ヘッダー・フラグの値。
  • 行番号:
    キーワード
    562 現在行番号。 このキーワードは、プログラムによるメッセージ出力を識別します。 シーケンス番号を提供するために、すべての行で使用することはできません。
  • what ストリングの構成:
    キーワード
    src/idd/en_US/files/aixfiles/sccsfile.ide、iダイxfiles、 idd71D 他のオペレーティング・システムに固有のプログラム・ファイルの what ストリングを構成するための省略表現。 その値は、以下のキー文字と等しくなります。
    src/idd/en_US/files/aixfiles/sccsfile.ide, idaixfiles, idd71D = @(#)11<tab>1.14
    @ (#) 11 1.14@ (#) このオペレーティング・システムに固有のプログラム・ファイルの what ストリングを構成するためのもう 1 つの省略表現。 その値は、文字とキー文字です。

    @(#) 11 1.14@(#) = @(#) 11 1.14 @(#)

    @(#) what コマンドによって認識される 4 文字のストリング @ (#) (アットマーク、左括弧、ポンド記号、右括弧)。