rcs-logオプション

アニメ『ダンス イン ザ ヴァンパイアバンド』(2010)

なんか、ミナ・ツェペッシュが魅力的なんです。この手の絵は私の好みではなかったハズなのに、好きになってきました。主題歌がフレンズってのもいい。この曲が主題歌ってのが意味深で、誰が誰と約束してたのだろう、本当はこの人との約束なのではないだろうか、この人の涙の意味は? 悲しい結末なんだろうか? なんて思いを巡らせてしまいます。久々(一週間ぶりぐらいですが)面白いアニメなので、ゆっくりコツコツ見ています。1話は一番面白い! ヴァンパイアがいるかいないかの討論番組から始まります。

自作grep-changelogにオプションを追加中ですが、未対応のオプションは以下の通りです。

       --rcs-log
              Print output in a format suitable for  RCS  log  entries.   This
              format removes author lines, leading spaces, and file names.

       --with-date
              In RCS log format, print short dates.

       --version
              Display version information.

       --help Display basic usage information.

–versionや–helpは、そのままの意味なので作れると思いますが、–rcs-logと–with-date。ん~、何でしょう、RCS。遠い昔に聞いたことあるような。

忘れてしまった時も、manです。
man rcsを確認します。

RCS(1)                      General Commands Manual                     RCS(1)

名称
       rcs - RCS ファイルの属性を変更する

書式
       rcs options file ...

解説
       rcs は、RCS ファイルの新規作成および RCS ファイルの属性変更を行います。
       RCS   ファイルは、複数のリビジョン、アクセスリスト、変更履歴、   内容記
       述、制御属性からなります。  rcs コマンドが実行できるのは、 実行したユー
       ザが RCS ファイルのアクセスリストに登録されているか、  アクセスリストが
       空であるか、ユーザが  RCS ファイルの所有者であるか、 スーパユーザである
       か、あるいは -i オプションが指定されている場合に限られます。

       RCS 拡張子にマッチするファイル名は  RCS  ファイルであるとみなし、その他
       のファイル名はワークファイルであるとみなします。詳しくは、 ci(1) を参照
       してください。リビジョン番号は ci(1) に記述されている形式を用います。

オプション
       -i     新たな RCS  ファイルを作成し、初期化します。ただし、リビジョンは
              作成しません。  指定されたファイル名にディレクトリ名が含まれてい
              ない場合、 rcs はまずカレントディレクトリにある ./RCS ディレクト
              リにファイルを作成しよう  と試みます。これに失敗したら、カレント
              ディレクトリに作成しようと試みます。 もしすでに RCS ファイルが存
              在した場合はエラーとなります。


~省略~

manの説明では良くわかりませんでしたので、代わりにapt-cache searchで確認します。簡潔に何をするコマンドか書いてあるハズ。。。

takk@deb9:~$ apt-cache search ^rcs
rcs - GNU リビジョン管理システム
rcs-latex - LaTeX macro package for handling RCS keywords (transitional package)
takk@deb9:~$

そうでした。記憶の隅に追いやっていました。ソースのバージョン管理してくれるコマンドですね。Gitよりも、Subversionよりも、CVSよりも、古いコマンドです。

使ってみます。

takk@deb9:~/tmp$ rcs
bash: rcs: コマンドが見つかりません
takk@deb9:~/tmp$ 

乱暴にもいきなりコマンド入力してしまいましたが、インストールされていませんでしたね。

インストールします。

takk@deb9:~/tmp$ sudo apt-get install rcs

~省略~

takk@deb9:~/tmp$

使えるようになったはずなので、rcs実行。

takk@deb9:~/tmp$ rcs
rcs: no input file
rcs aborted
takk@deb9:~/tmp$ 

gitは、gitと入力するだけでヘルプ表示してくれていたので、同じようにしてしまいました。
rcsは、rcsだけではヘルプは出してれません。

最初に、バージョン管理するソースを作りましょう。

takk@deb9:~/tmp$ cat test.c
int main()
{

}
takk@deb9:~/tmp$ 

空のメイン処理のみのプログラムです。これをrcsで管理します。

takk@deb9:~/tmp$ rcs test.c
rcs: warning: No options were given; this usage is obsolescent.
rcs: RCS/test.c,v: No such file or directory
takk@deb9:~/tmp$ 

ん~。使い方違いますね。
man rcsで書いてあった。-iオプションを使ってみます。

takk@deb9:~/tmp$ rcs -i test.c
RCS file: test.c,v
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> TEST FILE
>> .
done
takk@deb9:~/tmp$ 

英語の指示を見ながら入力。登録できたようです。
ファイル確認。

takk@deb9:~/tmp$ ls -l
合計 8
-rw-r--r-- 1 takk takk 16  9月 11 19:57 test.c
-r--r--r-- 1 takk takk 75  9月 11 19:59 test.c,v
takk@deb9:~/tmp$ 

test.cの管理ファイルは、test.c,vですね。分かりやすい。

fileコマンドで、RCSのファイルが認識できるでしょうか。

takk@deb9:~/tmp$ file test.c,v
test.c,v: ASCII text
takk@deb9:~/tmp$ 

できないようです。

中身を見てみます。

takk@deb9:~/tmp$ cat test.c,v
head	;
access;
symbols;
locks; strict;
comment	@ * @;



desc
@TEST FILE
@
takk@deb9:~/tmp$ 

タグがあるだけで、中身はないようです。

rcsのヘルプを–helpで表示してみます。

takk@deb9:~/tmp$ rcs --help
Usage: rcs [options] command [command-arg ...]

Dispatch an RCS command.

Options:
  --commands       Display available commands and exit.
  --aliases        Display command aliases and exit.
  --help COMMAND   Display help for COMMAND.

~省略~

–commandsオプションを使えというのですね。

takk@deb9:~/tmp$ rcs --command
(command)   (description)
 ci          Check in revisions of RCS files from working files.
 co          Check out working files from revisions of RCS files.
 frob        Change RCS file attributes.
 clean       Clean up working files.
 diff        Compare RCS revisions.
 merge       Merge RCS revisions.
 log         Print log messages and other information about RCS files.
takk@deb9:~/tmp$ 

–commandsでなくて–comandと入力してしまいましたが、認識されました。

logというコマンドがあったので、grep-changelogの–rcs-logオプションの意味を知るヒントが得られるかもしれません。使ってみます。

takk@deb9:~/tmp$ rcs log test.c

RCS file: test.c,v
Working file: test.c
head:
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 0
description:
TEST FILE
=============================================================================
takk@deb9:~/tmp$ 

管理情報ですね。

私は、バージョン管理はcvsから始めたので、rcsコマンドは今回初めて使います。UNIXのコマンドは、古くても使えるものが多いので、このrcsも不老不死のヴァンパイアのごとく、いつまでも活用できるコマンドだと嬉しいなあ、と思いながら、次回へ つづく

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA