Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sccs(1) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

SCCS(1)  —  NEWS-OS Programmer’s Manual

名称

sccs − SCCS サブシステムのフロントエンド

形式

sccs [ −r ] [ −dpath ] [ −ppath ] command [ flags ] [ args ]

解説

sccs は、 SCCS コマンドを他の UNIX コマンドと整合させるための、 SCCS のフロントエンドプログラムです。 sccs は、 他のユーザに対する付加的な保護手段として、 “set user id”を実行する機能も含んでいます。

基本的に、 sccs は指定された flags と args に従って command を実行します。 各引数は、 通常“SCCS/s.”の形に加工されます。

sccs プログラムが解釈するためのフラグは、 引数 command よりも前でなければなりません。 実際の各 SCCS プログラムに渡すフラグは、 引数 command よりも後ろに指定します。 command に特有のフラグについては、 それぞれのコマンドの解説を参照してください。

通常の SCCS コマンドの他に、 いくつかの“疑似コマンド”があります。

edit“get −e”と同等です。 delget 指定のファイルに delta コマンドを実行し、 新しいバージョンを得ます。 新しいバージョンは拡張された IDキーワードを持ち、 編集することはできません。 フラグ −m、−p、−r、−s、−y は delta コマンドに渡され、 フラグ −b、−c、−e、−i、−k、−l、−s、−x は get コマンドに渡されます。

deledit“get”フェーズが“−e”フラグを 含む以外は“delget”コマンドと同等です。 このオプションは今ユーザが編集しているフェーズの チェックポイントを作るのに有用です。 delta コマンドには上記と同様のフラグが渡されます。 そして、 −e および −k を除き、 上に挙げた“get”コマンドのすべてのフラグは“edit”に渡されます。

create同じ名前のファイルから最初の目次を作り、 SCCS ファイルを作ります。 “admin”コマンドに対するすべてのフラグが受け付けます。 SCCS ファイルの作成が成功した際は、 もとのファイルの名前は先頭にコンマの付いた形にリネームされます。 ユーザは SCCS ファイルの作成に成功したと確信できたならば、 これらを削除すべきです。

fix後ろに −r フラグが必要です。 このコマンドは基本的に指定の delta を削除しますが、 変更部分を中に含んだ delta のコピーをユーザに残します。 これは小さなコンパイラのバグ等の修正に有効です。 経過報告を残さないため注意が必要です。

cleanこの手続きは SCCS ファイルから再生成できる物すべてを カレントディレクトリから取り除きます。 編集中のファイルは取り除きません。 −b フラグが指定された場合は、 ファイルが編集中か否かの判定において、 分岐は無視されます。 同じディレクトリの中に分岐が存在する場合には、 clean は危険です。

uneditこれは“edit”や“get −e”の逆操作です。 最後の get 以降に行ったすべての変更を取り消され、 元に戻せなくなります。 したがって、 unedit を使用する場合は細心の注意をはわなければなりません。

info編集中のすべてのファイルのリストを出力します。 −b フラグが指定されると、 分岐 (つまり、 2、 3 の要素からなる SID) は無視します。 (オプションの引数とともに) −u フラグが指定されると、 単にユーザ (または、 指定名のユーザ) が編集しているファイルのリストを出力します。

check何も編集中でないならば何も出力せず、 何か編集中であれば 0 以外の終了ステータスを返す事を 除き“info”コマンドに似ています。 このコマンドの意図は、 makefile の中の“install”の項目に、 これ (sccs check) を含ませておき、 あるバージョンをインストールする前に、 すべてが SCCS ファイルに含まれている事を保証するためにあります。

tell編集中のファイルの (改行で分離された) リストを標準出力に出力します。 “info”や“check”と同様に −b、 −u フラグが指定可能です。

diffsユーザが編集した現時点のバージョンのプログラムと、 SCCS フォーマットのファイルの中にある バージョンとの間の“diff”リストを出力します。 フラグ −r、 −c、 −i、 −x、 −t は get に渡されます。 オプション −l、 −s、 −e、 −f、 −h、 −b は diff に渡されます。 −C フラグは −c として diff に渡されます。 print このコマンドは指定したファイルについて 冗長な情報を出力します。 −r フラグは、 sccs が“set user id”によって実効ユーザが変更されていても、 その ID ではなく、 実際のユーザ ID で sccs を実行します。 −d フラグは SCCS ファイルのルートディレクトリを与えます。 デフォルトはカレントディレクトリです。 −p フラグは SCCS ファイルが存在するディレクトリのパス名を定義します。 これは“SCCS”がデフォルトです。 −d の引数はパス名全体のため用意され、 −p の引数がパス名の最後の要素の前に挿入される点で −p フラグと −d フラグは異なります。 例えば、 “sccs −d/x −py get a/b”は “get /x/a/y/s.b”に変換されます。 この意図は、 “syssccs get cmd/who.c”のように使うために “alias syssccs sccs −d/usr/src”などの aliases を 作ることにあります。 また、 環境変数 PROJECT がセットされているならば、 その値は −d フラグとして使われます。 それがスラッシュで始まるならばディレクトリとして解釈されます。 さもなければ、 その名前のユーザのホームディレクトリから、 サブディレクトリ“src”または“source”があるか検査されます。 相当するディレクトリが見いだせたならば、 それが使われます。

あるコマンドは (admin の様な)、 すべてのユーザに対して“set user id”を 実行する事はできません。 なぜなら、 それは誰にでも権限の変更を許すことになってしまいます。 これらのコマンドは常に実際のユーザとして実行されます。

例

編集の為のファイルを手に入れ、 それを編集し、 新しいデルタを作る。

sccs get −e file.c
ex file.c
sccs delta file.c

他のディレクトリからファイルを得る。

sccs −p/usr/src/sccs/s. get cc.c

または

sccs get /usr/src/sccs/s.cc.c

カレントディレクトリの中に多数のファイルのデルタを作る。

sccs delta ∗.c

分岐てしてではなく編集されているファイルのリストを得る。

sccs info −b

ユーザが編集しているすべての delta を登録する。

sccs delta `sccs tell −u`

ソースファイルが存在しない場合に sccs から得る。

SRCS = <list of source files>
$(SRCS):
sccs get $(REL) $@

関連事項

what(SCCS)
Eric Allman, An Introduction to the Source Code Control System

バグ

SCCS コマンドで指定可能なように、 疑似コマンドもディレクトリを引数として指定できるようにすべきです。
SCCS は、NEWS-OS で現在サポートされていないため、 これらのコマンドは意味がありません。

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026