rcsで-rオプションを虐める


アニメ『初恋モンスター』(2016)

過保護に育てられた高1の夏歩は、大地主のお嬢様。箱入り娘を脱しようと一人暮らしのため華すみ荘に下宿することになったのですが、そこで奏に一目ぼれ。初恋です。告白して付き合うことになりますが、なんと奏では小学生でした。小学生には見えないんですよね。170センチ以上あるので。
奏とつるんでる奴らも、奏と同じく、顔も背格好も大人なんですが、半ズボンとランドセルという恰好が、まんま小学生。設定がすごく面白いです。

rcsコマンドの-rオプションの指定方法について、もっといろいろ探っていきます。
ヘルプを見直してみます。

takk@deb9:~/tmp$ rcs log --help
Usage: log [options] file ...

Print log messages and other information about RCS files.

Options:

~省略~

  -r[REVS]      Select revisions in REVS, a comma-separated list of
                range specs, one of: REV, REV:, :REV, REV1:REV2
 
~省略~

何か書いてあります。
でも英語の:と混ざっていて、よく分かりません。そもそも:(コロン)の使い方を、英文法的に理解してないので、私も、たいていの日本人が使う:のようにただの記号として普段使ってるので、:が普通に頭に入ってこないんですよね。

単語:   説明
ってのが正解みたいですが、

へっちゃらで、
単語  :  説明
こんな書き方を普段からしてます。

まあ、:の書き方はさておき、
ヘルプの:がイコールの意味で使ってると解釈すると、

one of:なので、
one of = 「REVや REV:や:REVや REV1:REV2」
って指定方法があるよってことを言っているのか、

one of:なので、
one ofが指しているのが、:自体っていうようにも見えて、

範囲指定するのに、一つの方法として:が使えるよ(他にも使えるものがある、たとえば-とか)ってことを言ってるのか、読み取れないんです。

まあネイティブや英語をちゃんと勉強した人なら、私のような疑問を、ふふっと笑って、文脈から普通に読めるのでしょうけど。

では、-rオプションをいろいろ試してみます。
何度も使ってるカンマと:の混合。

takk@deb9:~/tmp$ rcs log -r1.2,1.5:1.7,1.9 test2.c | grep ^rev
revision 1.9
revision 1.7
revision 1.6
revision 1.5
revision 1.2
takk@deb9:~/tmp$

次は、途中でスペースを空ける場合。

takk@deb9:~/tmp$ rcs log -r1.2,1.5:1.7, 1.9 test2.c | grep ^rev
log: RCS/1.9,v: No such file or directory
revision 1.102
revision 1.7
revision 1.6
revision 1.5
revision 1.2
takk@deb9:~/tmp$

だめですね。おそらくスペースを使うとパラメータの一つと解釈されてしまうんですね。

次はレビジョンの逆順指定。

takk@deb9:~/tmp$ rcs log -r1.10:1.5 test2.c | grep ^rev
revision 1.10
revision 1.9
revision 1.8
revision 1.7
revision 1.6
revision 1.5
takk@deb9:~/tmp$

問題なく取得できました。範囲なので、逆から指定しても問題ないわけですね。

次は存在しないレビジョン。

takk@deb9:~/tmp$ rcs log -r2.5 test2.c | grep ^rev
takk@deb9:~/tmp$

存在しないレビジョンなのだけど、レビジョン番号として整理していない場合。

takk@deb9:~/tmp$ rcs log -r.5 test2.c | grep ^rev
revision 1.5
takk@deb9:~/tmp$

あれ? 1.5になってしまいました。もかしたら数字を指定しないと、ワイルドカードになるのかもしれません。

次回続きをやってみます。

Leave a Reply

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

CAPTCHA