-mオプションは、:によるレビジョンの範囲指定ができないので、前回、forで回してログの一括修正しました。
しかしもっと手軽に-mオプションを使いたいため、forさえも使いたくありません。
-mオプションを複数使ったらどうなるでしょう。試してみます。
takk@deb9:~/tmp$ rcs -m1.1:"new log3" -m1.2:"new log4" test2.c
レビジョン1.1と1.2のログが変更されていれば、使えますね。
takk@deb9:~/tmp$ rcs log -r1.1:1.4 test2.c RCS file: RCS/test2.c,v Working file: test2.c head: 2.2 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 105; selected revisions: 4 description: test ---------------------------- revision 1.4 date: 2018/09/23 07:04:11; author: takk; state: Exp; lines: +1 -1 new log2 ---------------------------- revision 1.3 date: 2018/09/23 07:04:11; author: takk; state: Exp; lines: +1 -1 new log2 ---------------------------- revision 1.2 date: 2018/09/23 07:00:55; author: takk; state: Exp; lines: +1 -1 new log4 ---------------------------- revision 1.1 date: 2018/09/23 06:56:47; author: takk; state: Exp; new log3 ============================================================================= takk@deb9:~/tmp$
これでforで回さなくても、-mオプションを複数つければ、一括変更ができそうです。
printfコマンドで、-mオプションの書式を作ります。パラメータにレビジョンナンバーを並べるだけでよいです。
takk@deb9:~/tmp$ printf ' -m1.%d:"new log5"' 1 2 3 | xargs echo -m1.1:new log5 -m1.2:new log5 -m1.3:new log5 takk@deb9:~/tmp$
レビジョン1を全部変更したいので、1.*の最新レビジョンを確認。
takk@deb9:~/tmp$ rcs log -r1. test2.c RCS file: RCS/test2.c,v Working file: test2.c head: 2.2 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 105; selected revisions: 1 description: test ---------------------------- revision 1.102 date: 2018/09/23 07:04:12; author: takk; state: Exp; lines: +1 -1 new log2 ============================================================================= takk@deb9:~/tmp$
1.102ですね。
1~102を生成すればよいです。rcsコマンド実行してみましょう。
takk@deb9:~/tmp$ printf ' -m1.%d:log5' `seq 102` | xargs rcs rcs: no input file rcs aborted takk@deb9:~/tmp$
あ、ファイル名を忘れてました。ファイル名は、パラメータの一番最後に指定しないといけないので、工夫が必要ですね。
takk@deb9:~/tmp$ aaa=`printf ' -m1.%d:log5' $(seq 102)`
実行。
takk@deb9:~/tmp$ rcs $aaa test2.c RCS file: RCS/test2.c,v done takk@deb9:~/tmp$
全部変更できたでしょうか。
log5という文字列なので、grepしてみると、
takk@deb9:~/tmp$ rcs log -r1 test2.c | grep ^log5$ | wc -l 102 takk@deb9:~/tmp$
102個なので、全ログ変更できましたね。
コメント