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$
コメント