rcsを使う(その6)


アニメ『FORTUNE ARTERIAL-フォーチュンアテリアル-赤い約束』(2010)

吸血鬼が出てくるまですごく引っ張ります。逆にそれが良いです。引っ張られたおかげで、また日常に戻っても、次に何があるだろうと期待して見続けてしまいます。

今回はrcs log表示のヘッダ部分のHEREの場所のパラメータ表示一部対応しようと思います。

RCS file: HERE
Working file: HERE
head: HERE
branch:
locks: HERE
access list;
symbolic names:
keyword substitution:
total revisions: HERE     selected revisions:
description:

今回は、4箇所、以下の表示になるように対応します。

RCS file: ./RCS/test.c,v
Working file: test.c
head: 1.3 
branch:
locks; strict
access list:
symbolic names:
keyword substitution:
total revisions: 3;	selected revisions:
description:

working fileとRCS fileを、一旦変数に格納して分かりやすくします。
変更前。

     1	open(IN,"<RCS/$ARGV[0],v");
     2	while(<IN>){
     3		chomp;

変更後。

     1	$working_file = $ARGV[0];
     2	$rcs_file = "./RCS/$working_file,v";
     3	open(IN,"<$rcs_file");
     4	while(<IN>){
     5		chomp;
takk@deb9:~/tmp$

total revisionは、dateの行の累計で求めます。
locksの値は、headやrevと同じく、
修正前。

     2	while(<IN>){
     3		chomp;
     4		if(/^head\t(\d+\.\d+);/){
     5			$head = $1;
     6			next;
     7		}
     8		if(/^(\d+\.\d+)$/){
     9			$rev = $1;
    10			next;
    11		}
    12		if(/^(date\t\d\d\d\d\..*)$/){
    13			$date = $1;
    14			$hist{$rev} .= ":SEP:" . $date;
    15			next;
    16		}

修正後。修正箇所は10~13行目、21行目です。

     4	while(<IN>){
     5		chomp;
     6		if(/^head\t(\d+\.\d+);/){
     7			$head = $1;
     8			next;
     9		}
    10		if(/^locks; (\w+);/){
    11			$locks = $1;
    12			next;
    13		}
    14		if(/^(\d+\.\d+)$/){
    15			$rev = $1;
    16			next;
    17		}
    18		if(/^(date\t\d\d\d\d\..*)$/){
    19			$date = $1;
    20			$hist{$rev} .= ":SEP:" . $date;
    21			$total_revision++;
    22			next;
    23		}

修正後スクリプトにて確認。

takk@deb9:~/tmp$ perl my-rcs.pl test.c

RCS file: ./RCS/test.c,v
Working file: test.c
head: 1.3 
branch:
locks: strict
access list:
symbolic names:
keyword substitution:
total revisions: 3;	selected revisions:
description:

----------------------------
revision 1.3
date	2018.09.13.11.00.44;	author takk;	state Exp;
TEST
----------------------------
revision 1.2
date	2018.09.12.11.58.02;	author takk;	state Exp;
2nd Check in
----------------------------
revision 1.1
date	2018.09.12.11.49.34;	author takk;	state Exp;
Initial revision
=============================================================================
takk@deb9:~/tmp$ 

Leave a Reply

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

CAPTCHA