河野真治 @ 琉球大学情報工学です。

自分のソースのどの部分がどれくらい古いかを見ようと思って、RCS
version を行頭に付けるってのを考えました。で、Rcs-Parser-0.02
っていう Perl module があるんで、それをちょっといじってみる。
そのmodule を作った人も同じことを考えていたらしく、ほとんど 
undocument だが「そのもの」の関数notateを中に発見。

なんだが、地獄のように遅い.... 指定されたバージョンを取り出
すだけなら、そこそこスピードなんだけど。RCS って、最新のバー
ジョンから古いバージョンに遡ったdiff 履歴を管理しているので、
「一旦、一番、古いバージョンまで再構成して、それから、逆に新
しいものに辿って行く」というアルゴリズムになるらしい。それに
「ずれるし」なんでだ? 短いものだと、それっぽく動くのに。

まぁ、いいや。必須なものってわけでもないし。また、後で。

ちなみに、こんな感じ。

use Rcs::Parser;
my $rcs = new Rcs::Parser;
my $ret = $rcs->load($ARGV[0]);
my $current = $rcs->recent_version;
my $note = $rcs->notate();
my $notes = $note->{$current}->{body};
my $doc = $rcs->{current_document};
for my $line ( sort { $a <=> $b } keys %{$notes} ) {
     print $notes->{$line}->{origin},";\t";
     print $doc->{body}->{$line}->{line};
}

まてよ、$notes って、もしかして、重複した行が入っているのか...

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科