前回-mオプションを使ってログ修正できることを確認しました。
しかし複数レビジョンを指定して修正が簡単にはいきませんでしたね。
今回は、複数レビジョンのログを修正してみます。
ブランチナンバー1の全レビジョンを修正しますが、レビジョンがどれだけあるでしょうか。
takk@deb9:~/tmp$ rcs log -r1 test2.c | grep ^rev | cut -d' ' -f2 | pr -t5 1.102 1.81 1.60 1.40 1.20 1.101 1.80 1.59 1.39 1.19 1.100 1.79 1.58 1.38 1.18 1.99 1.78 1.57 1.37 1.17 1.98 1.77 1.56 1.36 1.16 1.97 1.76 1.55 1.35 1.15 1.96 1.75 1.54 1.34 1.14 1.95 1.74 1.53 1.33 1.13 1.94 1.73 1.52 1.32 1.12 1.93 1.72 1.51 1.31 1.11 1.92 1.71 1.50 1.30 1.10 1.91 1.70 1.49 1.29 1.9 1.90 1.69 1.48 1.28 1.8 1.89 1.68 1.47 1.27 1.7 1.88 1.67 1.46 1.26 1.6 1.87 1.66 1.45 1.25 1.5 1.86 1.65 1.44 1.24 1.4 1.85 1.64 1.43 1.23 1.3 1.84 1.63 1.42 1.22 1.2 1.83 1.62 1.41 1.21 1.1 1.82 1.61 takk@deb9:~/tmp$
たくさんありますね。
では、このリストを利用して、ログ修正しましょう。for文で回すだけです。
takk@deb9:~/tmp$ for i in `rcs log -r1 test2.c | grep ^rev | cut -d' ' -f2`;do rcs -m$i:"new log2" test2.c;done
実行すると、以下のメッセージがたくさん表示されます。
RCS file: RCS/test2.c,v done RCS file: RCS/test2.c,v done ~省略~ RCS file: RCS/test2.c,v done RCS file: RCS/test2.c,v done takk@deb9:~/tmp$
確認してみます。
takk@deb9:~/tmp$ rcs log -r1 test2.c | grep -v ^bran | grep ^rev -A2 | sed -ne '1~2p' | pr -t2l1 >tmp
では、各レビジョンのログが変更されたか確認してみましょう。数が多いので、冒頭と末尾の10行だけ確認します。
takk@deb9:~/tmp$ rcs log -r1 test2.c | grep -v ^bran | grep ^rev -A2 | sed -ne '1~2p' | pr -t2l1 > tmp takk@deb9:~/tmp$ head tmp revision 1.102 new log2 revision 1.101 new log2 revision 1.100 new log2 revision 1.99 new log2 revision 1.98 new log2 revision 1.97 new log2 revision 1.96 new log2 revision 1.95 new log2 revision 1.94 new log2 revision 1.93 new log2 takk@deb9:~/tmp$ tail tmp revision 1.10 new log2 revision 1.9 new log2 revision 1.8 new log2 revision 1.7 new log2 revision 1.6 new log2 revision 1.5 new log2 revision 1.4 new log2 revision 1.3 new log2 revision 1.2 new log2 revision 1.1 new log2 takk@deb9:~/tmp$
全部新しいログに変わってそうですね。
コメント