rcsを使う(その8)


アニメ『DIABOLIK LOVERS』(2013)

diabolicは、不愉快なって意味ですが、もうアニメ見てて不愉快。逆ハーレムなんだろうけど、主人公のユイが吸血鬼兄弟にいじめられ過ぎ。
いつこの兄弟だちはユイにデレるのだろうと、デレるのを期待して数話だけ見てたのですが、もうひどいひどい、ユイがさんざん血吸われて貧血だってのに、
プールに落とされたり、勝手に部屋入ってきたり、ユイがお風呂入ろうとしてたら、湯船に服のまま浸かってる奴がいたり。なんでしょう、いじめられるのを見て楽しめば良いのでしょうか、ちょっと楽しみ方がまだ分からないのですが、続編もたくさん出てるみたいだし、もしかしたら、継続視聴してたら、ユイがいじめられるのが楽しくなってくるんじゃないかと思って、頑張って見てます。
なんだかんだ、ユイもMっ子っぽいので、本人はいじめられるのが実は楽しいのかも、と思ってみれば、ちょっと見え方も変わってくるに違いありません。

依然rcsコマンド学習中です。
今回は、-rオプションでのレビジョン指定処理を作っていきます。

その前に、サンプルとしてレビジョン番号があまり進んでないので、1.3から1.4にレビジョンを上げます。
チェックアウトして、ロックして編集。そしてチェックイン。

takk@deb9:~/tmp$ rcs co test.c
RCS/test.c,v  -->  test.c
revision 1.3
done
takk@deb9:~/tmp$ rcs -l test.c
RCS file: RCS/test.c,v
1.3 locked
done
takk@deb9:~/tmp$ ls -l test.c
-r--r--r-- 1 takk takk 108  9月 19 20:01 test.c
takk@deb9:~/tmp$ chmod 644 test.c
takk@deb9:~/tmp$ vi test.c

~編集内容は省略~

takk@deb9:~/tmp$ rcs ci test.c
RCS/test.c,v  <--  test.c
new revision: 1.4; previous revision: 1.3
enter log message, terminated with single '.' or end of file:
>> 4th check in
>> .
done
takk@deb9:~/tmp$ 

これでサンプルは1.4まで進みました。

今回は、-rのカンマ区切りによるレビジョン指定を作ります。
カンマ区切りによるレビジョン指定は、レビジョンを2個だけ指定できるのか、3個以上できるのか確認します。

takk@deb9:~/tmp$ rcs log -r1.1,1.3,1.4 test.c

RCS file: RCS/test.c,v
Working file: test.c
head: 1.4
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4;	selected revisions: 3
description:
TEST
----------------------------
revision 1.4
date: 2018/09/19 11:03:05;  author: takk;  state: Exp;  lines: +1 -0
4th check in
----------------------------
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$ 

どうやら3個以上指定可能のようです。となると処理は簡単。splitを使って,で区切って配列変数に取得すれば良いだけです。
ソース。

takk@deb9:~/tmp$ cat -n my-rcs.pl | head
     1	foreach(@ARGV){
     2	        if(/-r(\d+\.\d+(?:\,\d+\.\d+)*)\b/){
     3			@target_rev = split /,/,$1;
     4			print "@target_rev\n";	
     5			next;
     6		}
     7	}
     8	
     9	exit 0;
    10	
takk@deb9:~/tmp$ 

実行結果。

takk@deb9:~/tmp$ perl my-rcs.pl -r1.5
1.5
takk@deb9:~/tmp$ perl my-rcs.pl -r1.5,1.6
1.5 1.6
takk@deb9:~/tmp$ perl my-rcs.pl -r1.5,1.6,1.7
1.5 1.6 1.7
takk@deb9:~/tmp$ 

3個できれば、10個も20個も変わらないの確認しません。出来上がりです。

Leave a Reply

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

CAPTCHA