プログラミングユーティリティ

ID キーワードを使用してバージョン固有情報を組み込む

前述のように、SCCS では、ID キーワード (SID) を使用して、チェックインするバージョンにバージョン固有の情報を組み込むことができます。ID キーワード (ファイル中に挿入します) は、変更をチェックインする際にそのバージョンに対応する情報に自動的に置換されます。SCCS ID キーワードは、以下のような形式になります。

%C%

ここで、C は大文字の一文字を表わしています。

たとえば、%I% は、最新デルタの SID に展開されます。%W% は、ファイル名、SID、一意の文字列 @(#) をファイルに取り込みます。この文字列 @(#) は、what コマンドによりテキストファイルと バイナリファイルの両方で検索されます。これによって、ファイルまたはプログラムがどのバージョンのソースから構築されたかを確認することができます。%G% キーワードは、最新のデルタの日付に展開されます。その他の ID キーワードとそれらが展開されたときの文字列については、表 5-1 を参照してください。


注 -

この方法で文字列を定義すると、C のオブジェクトファイルにバージョン情報が組み込まれます。この方法を使用して ID キーワードをヘッダー (.h) ファイルに組み込む場合は、ヘッダーファイルごとに異なる変数を使用してください。これにより、静的 (static) 変数を再定義しようとするエラーを防止できます。


バージョン固有の情報を C プログラムに取り込むには、以下のようにします。

static char SccsId[ ] = "%W%¥t%G%";

ファイル名が program.c の場合、この行はバージョン 1.2 が取り出されたときに以下のように展開されます。

static char SccsId[ ] = "@(#)program.c 1.2 08/29/80";

コンパイルされたプログラムで文字列が定義されているため、この方法によりコンパイルしたプログラムにソースファイルの情報を組み込むことができます。ソースファイルの情報は、以下のように what コマンドで確認することができます。

$ cd /usr/ucb
$ what sccs 
sccs
sccs.c 1.13 88/02/08 SMI

シェルスクリプトなどのスクリプトでは、ID キーワードをコメント内に含めることができます。

# %W%  %G% 
.  .  .

展開されたキーワードを含むバージョンをチェックインすると、バージョン固有の情報が更新されなくなります。これを通知するために、geteditcreate 実行時に ID キーワードを検出できないときには、以下のように SCCS は警告を表示します。

No Id Keywords (cm7)