rcsを使う(その6)

TVアニメ「FORTUNE ARTERIAL-フォーチュンアテリアル-赤い約束」放送中CM

アニメ『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を、一旦変数に格納して分かりやすくします。
変更前。

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

変更後。

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

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

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行目です。

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$

コメント

タイトルとURLをコピーしました