TVアニメ「デビルズライン」第1弾PV
アニメ『デビルズライン』
なんだか悲しいですねえ。吸血鬼に生まれたばっかりに、可哀想な生き方をする人ばかりです。衝動に駆られるとつらいでしょうねえ。そんなことを考えながら、ハラハラ見ています。面白いのだけどつらそうなのを見てるのもつらいので、ストレスがたまるアニメかもしれない。
rcsの自作をしながら、rcsコマンドを覚えていますが、今回は、その7です。
rcs logのヘッダ部分の selected revisionsの表示は、-rオプションで指定したレビジョンの数っぽいですが、本家のコマンドをいろいろ叩いて確認してみます。
-rでレビジョンを指定できますが、1つだけ指定すると、
takk@deb9:~/tmp$ rcs log -r1.1 test.c RCS file: RCS/test.c,v Working file: test.c head: 1.3 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 3; selected revisions: 1 description: TEST ---------------------------- revision 1.1 date: 2018/09/12 11:49:34; author: takk; state: Exp; Initial revision ============================================================================= takk@deb9:~/tmp$
このようにselected revisionsが、1になります。
-rオプションは、,:-などで区切って2つレビジョンを指定することができます。
1.1と、1.3のレビジョンを得たい場合は、-r1.1,1.3と指定します。
takk@deb9:~/tmp$ rcs log -r1.1,1.3 test.c RCS file: RCS/test.c,v Working file: test.c head: 1.3 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 3; selected revisions: 2 description: TEST ---------------------------- revision 1.3 date: 2018/09/13 11:00:44; author: takk; state: Exp; lines: +3 -1 TEST ---------------------------- revision 1.1 date: 2018/09/12 11:49:34; author: takk; state: Exp; Initial revision ============================================================================= takk@deb9:~/tmp$
1.1~1.3、つまり1.1、1,2、1.3を指定したい時は、r1.1:1.3、もしくは、r1.1-1.3というように指定します。
takk@deb9:~/tmp$ rcs log -r1.1:1.3 test.c RCS file: RCS/test.c,v Working file: test.c head: 1.3 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 3; selected revisions: 3 description: TEST ---------------------------- revision 1.3 date: 2018/09/13 11:00:44; author: takk; state: Exp; lines: +3 -1 TEST ---------------------------- revision 1.2 date: 2018/09/12 11:58:02; author: takk; state: Exp; lines: +2 -0 2nd Check in ---------------------------- revision 1.1 date: 2018/09/12 11:49:34; author: takk; state: Exp; Initial revision ============================================================================= takk@deb9:~/tmp$
では、自作のrcsコマンドをレビジョン1.1と1.3を指定してlogを表示するスクリプトに改造してみます。
3行目が追加箇所です。
1 $working_file = $ARGV[0];
2 $rcs_file = "./RCS/$working_file,v";
3 @target_rev = ("1.1","1.3"); $n=$#target_rev+1;
4 open(IN,"<$rcs_file");
selected revisionsには、さきほど追加した変数$nの値を表示するようにしておきます。
50 print <<EOL;
51
52 RCS file: $rcs_file
53 Working file: $working_file
54 head: $head
55 branch:
56 locks: $locks
57 access list:
58 symbolic names:
59 keyword substitution:
60 total revisions: $total_revision; selected revisions: $n
61 description:
62
63 EOL
次は各レビジョンログの表示部分。
67、68、77行目で、該当するレビジョンではないとスキップ(next)する処理を追加しました。
64 foreach(@all){
65 my $rev = $_;
66
67 foreach(@target_rev){
68 next unless(/$rev/);
69 my $line = $hist{$rev};
70 my ($tmp,$date,$log) = split /:SEP:/,$line;
71
72 print "----------------------------\n";
73
74 print"revision $rev\n";
75 print"$date\n";
76 print"$log\n";
77 }
78 }
改造後の自作rcsを使ってみます。
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: 2 description: ---------------------------- revision 1.3 date 2018.09.13.11.00.44; author takk; state Exp; TEST ---------------------------- revision 1.1 date 2018.09.12.11.49.34; author takk; state Exp; Initial revision ============================================================================= takk@deb9:~/tmp$


コメント