admin コマンド (SCCS)

目的

Source Code Control System (SCCS) ファイルを作成および制御します。

構文

新規 SCCS ファイルの作成

admin { -n -i[FileName ] } [ -a { User | GroupID } ] ... [ -f HeaderFlag[Value ] ... ] [ -r SID ] [ -t FileName ] [ -m ModificationRequestList ] [ -y[Comment ] ] File ...

注: フラグとオプションの (大括弧で囲まれた) 変数の間にはスペースを入れないでください。

既存の SCCS ファイルの修正

admin [ -a { User | GroupID } ] ... [ -e { User | GroupID } ] ... [ { -d HeaderFlag | -f HeaderFlag[Value ] ... } ] [ -m ModificationRequestList ] [ -t[FileName ] ] [ -y[Comment ] ] File ...

注: フラグとオプションの (大括弧で囲まれた) 変数の間にはスペースを入れないでください。

損傷した SCCS ファイルの検査

admin -h File ...

損傷した SCCS ファイルの訂正

admin -z File ...

説明

admin コマンドは、新しいソース・コード制御システム (SCCS) ファイルを作成するか、既存の SCCS ファイル内に指定されているパラメーターを変更します。

admin コマンドを使うと、ユーザーが編集できるファイルを get コマンドで構築する方法を制御するためのパラメーターを変更できます。 また、これらのパラメーターは、ファイルにアクセスできるユーザーや、編集できるファイルのリリースに関する条件も設定します。

File パラメーターに指定したファイルが存在していれば、admin コマンドはフラグに指定されているとおりにファイルを修正します。 その名前のファイルがなくて、-i フラグまたは -n フラグが指定されている場合は、admin コマンドは、新しいファイルを作成し、未指定のフラグにはデフォルト値を使用します。

File パラメーターにディレクトリー名を指定すると、admin コマンドはそのディレクトリー内のすべての SCCS ファイルに対して、要求されたアクションを実行します。 SCCS ファイルには、ファイル名の前に s. 接頭部が付いています。 File パラメーターに - (負符号) を使用すると、admin コマンドは標準入力を読み取り、各行をそれぞれ 1 つの SCCS ファイルの名前として解釈します。 入力はファイル終了文字で終了します。

ファイルを作成するには、対象ディレクトリー内での書き込み許可を持っていなければなりません。 SCCS ファイル名は、すべて s.Name のフォーマットでなければなりません。 新しい SCCS ファイルは、読み取り専用許可を持つものとして作成されます。 admin コマンドは、x.Name と呼ばれる一時 x ファイルに書き込みます。 その x ファイルが既に存在している場合は、そのファイルにはオリジナルの SCCS ファイルと同じ許可が設定されています。 admin コマンドが新しいファイルを作成する必要がある場合は、x ファイルは読み取り専用になります。 admin コマンドが正常に完了すると、x ファイルの名前は SCCS ファイルの名前に変更されます。 これにより、admin コマンドが実行中にエラーを検出しなかった場合にのみ、 SCCS ファイルに変更が加えられます。

SCCS ファイルを含むディレクトリーは、許可コード 755 (オーナーの場合は読み取り、書き込み、および実行許可、そしてグループ・メンバーおよびその他の場合は読み取りおよび実行許可) を持つものとして作成する必要があります。 SCCS ファイル自体は、読み取り専用ファイル (444) として作成します。 これらの許可を設定することで、オーナー以外は、非 SCCS コマンドを使って SCCS ファイルを修正できなくなります。 グループが SCCS ファイルにアクセスしてそれを修正できる場合は、ディレクトリーにグループ書き込み許可が含まれています。

さらに、admin コマンドは一時ロック・ファイルを (名前は z.Name) を使って、同時に複数のユーザーが SCCS ファイルを更新できないようにします。

フラグと入力ファイル名は、任意の順序で入力できます。 すべてのフラグがすべてのファイルに適用されます。 フラグとオプションの変数 (大括弧で囲まれたもの) の間には、スペースを入れないでください。 ヘッダー・フラグは、-f フラグで設定し、 -d フラグで設定解除できます。 ヘッダー・フラグは、get コマンドにより作成された g ファイルのフォーマットを制御します。

フラグ

項目 説明
-a User または -a GroupID SCCS ファイルに対して変更分 (デルタ) を追加する権限を持つユーザーのリストに、指定のユーザーを追加します。 User の値は、ユーザー名またはグループ ID です。 グループ ID を指定すると、そのグループ内のすべてのユーザーの名前を指定したことになります。 1 つの admin コマンド・ラインに複数の -a フラグを指定できます。 SCCS ファイルに空のユーザー・リストが入っている場合は、誰でもデルタを追加できます。 ファイルにユーザー・リストがある場合は、ファイルの作成者がファイルにデルタを追加できるようにするため、作成者の名前を必ずリストに含めてください。User または GroupID パラメーターの前に ! (感嘆符) を付けると、 指定したユーザーについてデルタ作成の許可が拒否されます。 例えば、-a !User のように入力します。
-d HeaderFlag SCCS ファイル内の指定されたヘッダー・フラグの効力を無効にします。 このフラグは既存の SCCS ファイルについてのみ指定できます。 1 つの admin コマンドの中で複数の -d フラグを指定することもできます。 サポートされる値の詳細については、このあとのヘッダー・フラグのリストを参照してください。
-e User または -e GroupID SCCS ファイルに対するデルタ適用を許可されたユーザーのリストから、指定のユーザーを除去します。 グループ ID を指定すると、そのグループに属するすべてのユーザー 名を指定することになります。 1 つの admin コマンド・ラインに複数の -e フラグを指定できます。
-f HeaderFlag[Value ] SCCS ファイル内で、指定されたヘッダー・フラグおよび値を有効にします。 1 つの admin コマンドの中で複数のヘッダー・フラグを指定できます。 ヘッダー・フラグは 12 個あります。 サポートされる値の詳細については、このあとのヘッダー・フラグのリストを参照してください。 HeaderFlag 変数と Value 変数の間にはスペースを入れないでください。
-h SCCS ファイルの構造を検査して、新しく計算されたチェックサムを SCCS ファイルの 1 行目に格納されているチェックサムと比較します。 チェックサム値が正しくなければ、ファイルが正しく修正されていないか、損傷していることになります。 このフラグは、SCCS ファイルを修正するときに非 SCCS コマンドの使い方を間違ったために発生した損傷や、事故による損傷を検出するのに役立ちます。 -h フラグはファイルへの書き込みを防止するので、指定されている他のフラグの効力は無効になります。 ファイルに損傷があることを示すエラー・メッセージが戻された場合は、-z フラグを使ってチェックサムを再計算してください。 そして、再度 -h フラグを使って、ファイルが訂正されたかどうかを確認します。
-i[FileName ] FileName 変数から新しい SCCS ファイル用のテキストを取り出します。 このテキストはファイルの第 1 のデルタです。 ファイル名を指定しないで -i フラグを指定した場合は、admin コマンドは、ファイル終了文字に達するまで標準入力からテキストを読み取ります。 -i フラグを指定しないで、-n フラグを指定した場合は、このコマンドは空の SCCS ファイルを作成します。 admin コマンドは、テキストを含むファイルを一度に 1 つだけ作成できます。 admin コマンドの 1 回の呼び出しによって複数の SCCS ファイルを作成するには、-n フラグを使用する必要があり、したがって、空の SCCS ファイルが作成されることになります。 FileName 変数にファイルを指定した行には、1 行について 512 文字までしか入れることはできません。 ファイル名には、MBCS (マルチバイト文字セット) 文字を含めることができます。 フラグと FileName 変数の間にはスペースを入れないでください。
-m ModificationRequestList 初期デルタ作成の理由として SCCS ファイルに挿入する変更要求 (Modification Request: MR) 番号のリストを指定します。 使用する妥当性検査プログラムによっては、null または空のリストも有効と見なされます。 v ヘッダー・フラグを設定する必要があります。 MR 番号の妥当性検査が行われるのは、v ヘッダー・フラグに、値 (MR 番号妥当性検査プログラムの名前) を指定した場合です。 v ヘッダー・フラグが設定されていないか、MR 妥当性検査に合格しなかった場合は、admin コマンドはエラーを報告します。
-n 新しい空の SCCS ファイルを作成します。-i フラグを指定しないで -n フラグを使用すると、ファイル・データがなく制御情報だけの SCCS ファイルが作成されます。
-r SID 作成する SCCS 識別文字列 (SID) ファイルのバージョンを指定します。 SID 変数には、リリース、レベル、分岐、順序という 4 レベルのデルタ (例えば、3.2.5.1) を指定できます。 リリースだけを指定した場合は、admin コマンドは自動的にレベル 1 を想定します。-r フラグをしなかった場合は、初期デルタはリリース 1、レベル 1 (つまり 1.1) になります。 SID の指定方法の詳細については、get コマンドのセクションの SID 判別表を参照してください。

-r フラグを指定するには、-i または -n フラグも指定してあることが必要です。 このフラグは、SCCS ファイルを作成するときにだけ使用してください。

-t[FileName ] FileName 変数に指定したファイルから、SCCS ファイルの記述テキストを取り出します。 新しい SCCS ファイルを作成するときに -t フラグを使う場合は、ファイル名を指定する必要があります。 既存の SCCS ファイルの場合は、次のようになります。
  • -t フラグにファイル名を指定しなかった場合は、SCCS ファイル内に現在ある記述テキストがすべて除去されます。
  • -t フラグにファイル名を指定した場合は、SCCS ファイル内に現在あるすべての記述テキストが、指定したファイル内のテキストで置換されます。
  • ファイル名には、MBCS (マルチバイト文字セット) 文字を含めることができます。

フラグと FileName 変数の間にはスペースを入れないでください。

-y [Comment] delta コマンドと同じ方法で、指定されたコメントを初期デルタに挿入します。 このフラグは、SCCS ファイルを作成するときにだけ使用してください。 コメントを指定しなかった場合は、admin コマンドは次のフォーマットの行を挿入します。

date and time created YY/MM/DD HH:MM:SS by Login

コメントには、MBCS (マルチバイト文字セット) 文字を含めることができます。フラグと FileName 変数の間にはスペースを入れないでください。

-z SCCS ファイルのチェックサムを再計算して、SCCS ファイルの 1 行目に格納します (-h フラグを参照)。

注意: 損傷したファイルに対して、-z フラグを指定した admin コマンドを使用すると、以後の損傷検出が行われなくなることがあります。このフラグは、重大なエラーが原因で、SCCS コマンド以外のコマンドを使って SCCS ファイルを変更する場合にのみ使用するようにしてください。

File admin コマンドにより作成または変更するファイルの名前を指定します。- (負符号) を指定した場合は、admin コマンドは標準入力から読み取ります。標準入力はファイル終了文字で終了します。

ヘッダー・フラグ

次のリストは、-f フラグを使って設定し、-d フラグを使って設定解除できるヘッダー・フラグを示しています。 ヘッダー・フラグは、get コマンドにより作成された g ファイルのフォーマットを制御します。

項目 説明
b get コマンドの -b フラグを使って分岐デルタを作成できるようにします。
c Number Number 変数を、get -e コマンドで使える最大のリリース番号にします。Number 変数の値は、0 より大きく、9999 以下でなければなりません。 (デフォルト値は 9999 です。)
d SID SID 変数を、get コマンドに与えられるデフォルトのデータにします。
f Number Number 変数を、get -e コマンドで検索できる最小のリリース番号にします。Number 変数は、0 より大きく、9999 未満でなければなりません。(デフォルト値は 1 です。)
i [String] get または delta コマンドが発行する次の通知メッセージを、エラーとして処理します。
There are no SCCS identification keywords in the file. (cm7)
このフラグを指定しない場合、このメッセージは単なる警告と見なされます。このメッセージが発行されるのは、SCCS ファイル内で検索または格納されたテキストの中に SCCS 識別キーワードが見つからなかった場合です (get コマンドを参照)。文字列を指定した場合は、キーワードはその文字列に正確に一致していなければなりません。文字列にはキーワードが含まれていなければならず、途中に改行があってはいけません。
j 並行して実行する複数の get コマンドが、SCCS ファイルの同じ SID を編集できるようにします。j ヘッダー・フラグを使用することにより、同じバージョンの SCCS ファイルに対して複数の更新を同時に行うことができます。
lList (L の小文字) List 変数に指定されているリリースを編集できないようにロックして、これらのリリースの 1 つに対する get -e コマンドが失敗するようにします。リストの構文は次のとおりです。
<List> : : = <Range> | <List> , <Range>
<Range> : : = SID | a
ここで、リスト内の文字 a は、指定した SCCS ファイルのすべてのリリースが対象となることを示します。
m Module get コマンドにより検索された SCCS テキスト・ファイル内の 59 キーワードの 全検索結果を、Module 変数で置換します。デフォルトの Module 変数は、s. 接頭部が付かない SCCS ファイルの名前です。モジュール名には MBCS (マルチバイト文字セット) 文字を含めることができます。
n 新しいリリース内でデルタが作成されたときに回避された各リリース内に null デルタを作成するように、delta コマンドに指示します。 例えば、デルタ 2.7 の後でデルタ 5.1 を作成した場合、リリース 3 および 4 は null になります。リリース 3 および 4 は、s. ファイルのデルタ・テーブル内に null デルタ・エントリーとして作成されます。結果の null デルタは、分岐デルタを構築する始点としてのロールを果たします。このフラグがないときは、回避されたリリースは SCCS ファイル内に現れません。
q Text get コマンドで検索された SCCS テキスト・ファイル内のキーワードの全検索結果を、指定されたテキストに置換します。
t Type get コマンドにより検索された g ファイル内のすべてのキーワードを、指定されたタイプで置換します。
v [Program] delta コマンドに、デルタ作成の理由を示す変更要求 (MR) 番号を求めるプロンプトを表示するよう指示します。Program 変数は、MR 番号妥当性検査プログラムの名前を指定します。 SCCS ファイル内で v フラグを設定する場合は、-m フラグも使用する必要があります (値は null でもかまいません)。プログラム名には MBCS (マルチバイト文字セット) 文字を含めることができます。

損傷した SCCS ファイルの検索

SCCS にはエラー保護の機能がありますが、事故により損傷したファイルのリカバリーが必要になることもあります。このような損傷の原因となるのは、システムの誤動作、オペレーター・エラー、または、SCCS コマンド以外の手段による SCCS ファイルの変更などです。

SCCS コマンドは、チェックサムを使って、ファイルが最後に使われてから変更されたかどうかを判別します。損傷ファイルを処理する SCCS コマンドは、-h または -z フラグを指定した admin コマンドだけです。-h フラグは、admin コマンドに、SCCS ファイル・ヘッダーに格納されているチェックサムを計算されたチェックサムと比較するよう指示します。-z フラグは、このコマンドに、チェックサムを再計算してファイル・ヘッダーに格納するように指示します。

終了状況

このコマンドは次の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

次の例では、test.c という名前の架空のテキスト・ファイルを使い、ed のようなエディター使ってファイルを編集します。

  1. 最初に、通常の SCCS ファイルを 1 つ作成します。s.test.c という名前の空の SCCS ファイルを作成するには、次のように入力します。
    $ admin -n s.test.c
    -n フラグを指定して admin コマンドを使用すると、空の SCCS ファイルが作成されます。
  2. 既存のテキスト・ファイルを SCCS ファイルに変換するには、次のように入力します。
    
    $ admin -itest.c s.test.c
    There are no SCCS identification keywords in the file (cm7)
    $ ls
    s.test.c test.c
    -i フラグを使用すると、admin コマンドは、指定されたファイルからデルタ 1.1 を作成します。デルタ 1.1 が作成されたら、SCCS コマンドと衝突しないようにオリジナルのテキスト・ファイルの名前を変更します。
    $ mv test.c back.c
    メッセージ「There are no SCCS identification keywords in the file (cm7)」はエラーを示すものではありません。SCCS は、ファイル内に識別キーワードがない場合に、このメッセージを書きます。識別キーワードは、SCCS ファイルに入れることのできる変数です。これらの変数の値は、日付、時刻、SID、ファイル名などの情報を提供します。識別キーワードの説明については、get コマンドを参照してください。識別キーワードがないと、SCCS は上記のメッセージを書きます。 しかし、s. ファイル内で i ヘッダー・フラグが設定されているときは、このメッセージはエラー条件になります。このフラグはユーザーが設定します。

    SCCS ファイルには、s. で始まる任意の名前を付けます。前述の例ではオリジナル・ファイルと SCCS ファイルに同じ名前をつけていますが、必ずしもその必要はありません。

    リリース番号を指定しなかったので、admin コマンドは、SCCS ファイルに 1.1 という SID を与えます。SCCS では、デルタを識別する番号として 0 は使いません。したがって、ファイルの SID として、例えば 1.0 や 2.1.1.0 などは使用できません。新しいリリースはすべてレベル 1 から始まります。

  3. test.c ファイルをリリース番号 3.1 で始めるには、次のように、-r フラグを指定した admin コマンドを使用します。
    
    $ admin -itest.c -r3 s.test.c
    SCCS ファイルの変更許可を、特定セットのユーザー ID だけに制限するには、admin コマンドの -a フラグを使って、SCCS ファイルのユーザー・リスト内のユーザー ID またはグループ ID 番号を出力します。このフラグは、コマンド・ラインで複数回表示されます。指定した ID は SCCS ファイル・ヘッダーに表示されます。-a フラグを使ってアクセスを制限しなければ、すべてのユーザー ID が SCCS ファイルを変更できることになります。
  4. ユーザー ID dan に対する編集許可を制限するには、次のように入力します。
    
    $ admin -adan s.test.c
  5. 損傷が発生する可能性に備えて、SCCS ファイルは定期的に検査するようにしてください。この検査を行うための最も簡単な方法は、次のように、すべての SCCS ファイルおよび SCCS ディレクトリーに対して、-h フラグを指定した admin コマンドを実行することです。
    $ admin -h s.file1 s.file2 ...
    $ admin -h directory1 directory2 ...
    計算されたチェックサムと SCCS ファイル・ヘッダーに出力されているチェックサムとが等しくないファイルが見つかると、admin コマンドは次のメッセージを表示します。
    ERROR [s. filename]:
    1255-057 The file is damaged. (co6)
    損傷したファイルがあったときは、ファイルを編集し直すか、またはバックアップ・コピーを読み取ってください。ファイルの修正が終わったら、-z フラグと修復済みのファイル名を指定した admin コマンドを実行します。
    $ admin -z s.file1
    この操作により、SCCS ファイル・ヘッダー内の古いチェックサムが、現在のファイルの内容に基づく新しいチェックサムで置き換えられます。これで、他の SCCS コマンドによりこのファイルを処理できるようになります。

ファイル

項目 説明
/usr/bin/admin SCCS admin コマンドが入っています。