RCS 履歴
河野真治 @ 琉球大学情報工学です。
自分のソースのどの部分がどれくらい古いかを見ようと思って、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
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735