ソースコード管理システムは、sccs(1) コマンドで構成されます。このコマンドは、/usr/ccs/bin ディレクトリにあるユーティリティプログラムのフロントエンドです。SCCS のユーティリティプログラムの一覧は、表 5-2 を参照してください。
sccs create コマンドは、ファイルを SCCS に管理させます。このコマンドは、新しい履歴ファイルを作成し、ソースファイルのすべての内容を最初のバージョンとして使用します。デフォルトでは、履歴ファイルは SCCS サブディレクトリにあります。
$ sccs create program.c program.c: 1.1 87 lines
SCCS は、作成されたファイルの名前、バージョン番号 (1.1)、行数を出力します。
元のファイルが誤って喪失または損傷してしまったときのために、sccs create は新しいファイル名の先頭にコンマを付けたファイルに (これをコンマファイルと呼びます) 元のファイルへの 2 つ目のリンクを作成します。履歴ファイルの初期化に成功すると、SCCS は新たに読み取り専用バージョンを取り出します。このバージョンとそのコンマファイルとを比較して検証した後は、コンマファイルを削除してください。
$ cmp ,program.c program.c (何も出力されない場合はファイルが完全に 一致していることを意味します) $ rm ,program.c
SCCS が取り出す読み取り専用バージョンは、まだ編集しないでください。ファイルを編集するには、後述の sccs edit コマンドを使用してファイルをチェックアウトする必要があります。
履歴ファイルと現在のバージョンとを区別するため、履歴ファイルの名前に s. という接頭辞が使用されます。この履歴ファイルはしばしば s. ファイル (s ドットファイル) とも呼ばれます。また、履歴ファイルは、慣用的に SCCS ファイルとも呼ばれます。
SCCS 履歴ファイルの形式については、sccsfile(4) を参照してください。
以下の sccs サブコマンドは、バージョン管理機能を実行します。以下にサブコマンドを要約しています。create 以外のサブコマンドについての詳細は、「sccs サブコマンド」で説明しています。
前述の履歴ファイルおよび最初のバージョンを初期化します。
編集を行うために書き込み可能なバージョンをチェックアウトします。このコマンドを実行したユーザーを所有者として書き込み可能なコピーを取り出し、他のユーザーが変更をチェックインできないように、履歴ファイルをロックします。
変更をチェックインします。このサブコマンドによって、sccs edit 処理が完了します。変更を記録する前に、コメントを入力するためのプロンプトが表示されます。コメントは、履歴ファイル中のバージョンログに保存されます。
ファイルの読み取り専用コピーを s. ファイルから取り出します。デフォルトでは、最新のバージョンが取り出されます。取り出されたバージョンは、コンパイル、フォーマット、表示を行うためのソースファイルとして使用できます。ただし、このバージョンは編集または変更を行うためのものではありません。読み取り専用バージョンのファイルアクセス権を変更すると、ファイルへの変更が無効になる場合があります)。
ディレクトリをファイル名引数として指定すると、sccs はそのディレクトリ内のすべての s. ファイルに対して get サブコマンドを実行します。
sccs get SCCS
上記のコマンドは、SCCS サブディレクトリ内のすべての s.file の読み取り専用バージョンを取り出します。
バージョンログと、各バージョンに対応するコメントを表示します。
バージョンをチェックインすると、SCCS は、チェックインしたテキストと直前のバージョンとの、行ごとの相違だけを記録します。この相違をデルタと呼びます。edit または get により取り出されるバージョンは、それまでにチェックインされたデルタから構成されます。
「デルタ」と「バージョン」は、しばしば同義語として使用されます。ただし、これらの意味は正確には同一ではありません。選択したデルタを省略したバージョンを取り出すこともできます (「取り出したバージョンからデルタを削除する」を参照してください)。
SCCS のデルタ ID (SID) は、特定のデータを示すための番号です。SID は、ドット (.) で区切った 2 つの番号で構成されます。最初のデルタの SID は、デフォルトでは 1.1 です。SID の最初の部分はリリース番号、2 番目の部分はレベル番号です。デルタをチェックインすると、レベル番号が自動的に 1 つずつ増えます。リリース番号は、必要に応じて増やすことができます。SCCS は、この他に分岐デルタ用の 2 つのフィールドも認識します (分岐デルタについては 「分岐」を参照してください)。
厳密には、SID はデルタそのものを示しますが、デルタとそれ以前のバージョンから構築したバージョンのことを「デルタ」という場合もあります。
SCCS は、ソースファイル中の特定のキーワードを認識して展開します。このキーワードを使用して、チェックインするバージョンのテキストにそのバージョン固有の情報 (SID など) を含めることができます。編集を行うファイルをチェックアウトするときに、ID キーワードは以下のようになります。
%C%
ここで、C は大文字です。ファイルをチェックインする際に、SCCS はキーワードを対応する情報に置換します。たとえば、%I% は、現在のバージョンの SID に展開されます。
ID キーワードは、一般的にはコメントまたは文字列の定義中に含めます。少なくとも 1 つの ID キーワードがソースファイルに含まれていない場合は、SCCS は以下のような診断を出力します。
No Id Keywords (cm7)
ID キーワードについての詳細は、「ID キーワードを使用してバージョン固有情報を組み込む」を参照してください。