たのしいぷるぐらみんぐシリーズ

RCS を使おう講座

初心者の質問ページへ行く
第1回「Keyword」
[an error occurred while processing this directive]

・バージョン情報を埋め込もう

では、前回やったように unya.c をチェックアウトしてみましょう。
% co -l unya.c
エディタを使い unya.c を読み込んだら、ファイルの先頭に
/*
 $Id$
*/
と書いて、セーブしましょう。セーブしたら、一度チェックインして すぐに取り出しましょう。この場合 ci に -l オプションを使うと便利です。
% ci -l unya.c
-l オプションは、「チェックインした後、またすぐにロックして取り出す」 という意味です。さて、ここで unya.c の内容をみてみましょう。
% cat unya.c
/*
 $Id: unya.c,v 1.3 1997/02/10 14:36:12 minatsu Exp $
*/
だいたいこんな感じになっていると思います。「おぉ!?これはよくソースファイル 等に見掛ける謎の文字列!」と勘づかれた方はいますでしょうか。そうです。これこそ がリビジョン情報を埋め込む方法なのです。

RCS は、$Id$ 以外にもいくつかのキーワードを 自動的に置換してくれます。次にキーワードの一覧を御紹介します。 (参考:日本語訳manページ)

$Author$

$Date$

$Header$

$Id$

$Locker$

$Log$

$RCSfile$

$Revision$

$Source$

$State$


・埋め込んであるバージョン情報を見てみよう

コンパイルしてできたオブジェクトファイルやバイナリファイルに埋め込まれている キーワードを取り出すコマンドがあります。ためしに、/bin/ls に含まれる キーワードを取り出してみましょう。
% ident /bin/ls
/bin/ls:
     $Id: strrchr.S,v 1.2 1995/01/23 01:29:23 davidg Exp $
     $Id: strftime.c,v 1.2.4.3 1996/06/05 02:50:26 jkh Exp $
			〜中略〜
     $Id: cerror.S,v 1.3.4.2 1996/06/05 02:47:38 jkh Exp $
     $Id: memmove.S,v 1.2.4.2 1996/06/05 02:47:35 jkh Exp $
ident コマンドは、オブジェクトファイルやバイナリファイルに含まれる キーワードを抜きだして表示してくれます。これにより、RCS を使った 環境で作成されたバイナリファイルなら、どんなソースファイルのどのバージョン がリンクされているか確認することができます。(もちろん、ソースファイルに $Id$ というキーワードが入っていればですが。)


・キーワードを埋め込む時の注意

キーワードは、コンパイルしてもちゃんとオブジェクトファイルの中に 残るように書きます。なぜかというと、コメントなどに $Id$ と書いても、 コンパイル時に無視されて、オブジェクトファイルには残らないからです。

一般的に、C言語の場合は

static char rcsid[] = "$Id$";
とするとよいでしょう。

☆いかがでしたか?

今回は RCS の醍醐味(?)の一つ、キーワードの埋め込みに付いてご説明しました。 キーワードの埋め込みを覚えると、だんだん RCS を使うのが楽しくなってきますね。 さて 次回 は RCS に対応しているソフトの一つ mule を使って、さらに便利に RCS を使う環境について御紹介しようと思います。mule を使うか使わないか によって、RCS 環境の使いやすさは格段に変わりますよ〜。 では次回をおたのしみに!

初心者の質問ページへ行く

本ページはリンクフリーです。
なお、御連絡頂ければ相互リンクを張らせて頂きます。
Produced by 月島美夏

お手紙ちょ〜だ〜い
minatsu@proc.org.tohoku.ac.jp