rcs

誰にというわけでもなく、なんとなく。

RCS(Revision Control System)ちうのがあって、元はみんなでプログラム作 るときにファイルの修正履歴残したりするために出たツール。 今は本気で大勢でプログラム作る ときにはCVSちうもっとえらいツール使うようになったが、rcsは個人で文書管理 するときとかまだまだ便利よという話。

たとえば、どんどん書き足して行くHTML文書があったとするやん。古い情報 は消して、新しいのを足して、とかやってる途中で、古い記述を消すのがもった いなくなって、

% cp index.html index.html.old

なんてやったりする、もっと時間が経って

% mv index.html.old index.html.old.2000-10
% cp index.html  index.html.old.2000-11

なんてやって、うへー、ファイルが一杯じゃー、 なんてことを経験したことのあるちみには、rcsが良く効く。

Emacsで編集しているとしよう。「あー、このファイル、ここまでの時点で 保存したいよー」というときに C-x v v とおしたまへ。ぶいぶいズとは関係な い。すると、ウィンドウが二個に分かれてなんかメモの言葉を残せと聞いて来る。 そしたら、適当にその状態のメモを残す。たとえば、

納車当日の感想を書いた。

とか

夏用の御題を消した。

とか。そしたら、C-c C-c を押す。メイル送信みたいやね。すると、しゅる しゅるっと画面が戻って、ファイルが書き込み不可になる。これでこのバージョ ンの登録完了。後でどんなにファイルをいじっても、将来いつでもこのバージョ ン取り出せる。

次の日、また書き換えなきゃー、って思ったら、普通にファイル を開くと書き込み不可になってる。そしたら、もっぺん C-x v v じゃ。すると、 「はい、修正してくださいな」モードになるから、また削ったり書いたりして、 一段落ついたらまた C-x v v じゃ。そう、「ハイここまでヨ」と「さあ書いた ろか」のときに常に C-x v v おすよろし。これだけ知ってればとりあえず使え る。

では、古いのを引っ張り出して郷愁に浸りたいときはどうするか。まず、 C-x v l とおす。C-x v までは同じキーで、l は log のLと覚えるよろし。する と、隣に覚書とrevision番号が出て来る。「おお、あのときのrevisionは1.2 だったかー」ということが分かったら、C-x v ~ (ニョロ) と押す。revisioin番 号を聞いて来るので1.2と答えると、あら不思議(じゃないって)1.2の時の文書が 甦るのであった。

実際には Emacs がやってくれているわけではなくて、子分としてrcsのコマ ンド群を呼んでいる。Emacs内の操作は実際にコマンドラインで行うことができ る。その対応表。

操作名Emacs操作対応するコマンドライン
チェックインC-x v vci -u ファイル名
チェックアウトC-x v vco -l ファイル名
ログ参照C-x v lrlog ファイル名 | less
Revision取り出しC-x v ~ 番号co -r番号 ファイル名
前revisionとの比較C-x v =rcsdiff -u ファイル名

ちなみにチェックインで保存するときは、前のものとの差分だけを保存して 行くので何回チェックインしてもたいして大きくならない。保存するファイルは デフォルトだと元のファイル名の後ろに ,v をつけたものになるが、同じディレ クトリに ,v ファイルが溜るのが嫌なときはあらかじめ RCS/ というディレクト リを掘っておけばそのディレクトリの全ての ,v ファイルはそこに置かれるよう になる。

ちみもぶいぶいしてみやう。


きまぐれ記
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]