キーワードを使いたい場合は、$Id$
などの適当な文字列を
ファイルに記述してから格納するだけです。
CVS は格納操作の一環として自動的に文字列を展開します。
次例は、C のソース中に $Id$
を埋め込む典型的な方法です。
この例では、置換後のファイルの始めから数行を示します:
static char *rcsid="$Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $"; /* The following lines will preventgcc
version 2.x from issuing an "unused variable" warning. */ #if __GNUC__ == 2 #define USE(var) static void * use_##var = (&use_##var, (void *) &var) USE (rcsid); #endif
ちょっと賢いコンパイラで最適化すると、
使用しない変数 rcsid
が削除されてしまいますが、
ほとんどのコンパイラでは文字列がバイナリに埋め込まれます。
またバイナリ中に直接文章を埋め込むために #pragma
が
使用できるコンパイラもあります。
ident
コマンド (RCS の一部) を使用して、
ファイルからキーワードとその値を抜き出すことができます。
もちろんテキスト・ファイルにも使えますが、
バイナリ・ファイルからキーワードを抜き出したいときに非常に便利です。
$ ident samp.c samp.c: $Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $ $ gcc samp.c $ ident a.out a.out: $Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
別のリビジョン管理システムとして有名なものに SCCS があります。
SCCS には、ident
と非常によく似た
同じ用途のコマンド what
が含まれます。
RCS を持たないサイトの多くは SCCS を使っています。
what
コマンドは @(#)
という文字列を探すため、
両方のコマンドに対応するキーワードを含めるのは簡単です。
RCS のキーワードの前に、
簡単な SCCS の魔法の呪文を唱えるだけで良いのです:
static char *id="@(#) $Id: ab.c,v 1.5 1993/10/19 14:57:32 ceder Exp $";