Pages

2005-11-20

VC 下にある ChangeLog メモのバックアップを取る

VC管理下のファイルのバックアップ」というエントリーで、ひげぽんさんが ChangeLog メモファイルを誤操作で削除してしまい、過去二週間分のデータをなくしたとあった。

ChangeLog メモファイルはバージョン・コントロールの Subversion で管理していたものの、最後の commit が二週間前であったらしい。運がなかったのは、Emacs は VC で管理しているファイルのバックアップは取らないこと。もしバックアップが取られていたら、もう少し被害は小さかったろうにとある。

バージョン・コントロールはバックアップを取ることも重要な役割だから、Emacs が重複する機能の一方を機能オフにするのは理に適ってる。ただ、VC のバックアップのタイミングは人任せなので、ひげぽんさんのようにバックアップを取っていないと不幸になる。その対処法として、ひげぽんさんのエントリーは、「バージョン・コントロール管理ファイルでもバックアップを取る設定」

(setq vc-make-backup-files t)

で最後を締めくくっている。ただ、このコードを入れると VC で管理している全てのファイルでバックアップ・ファイルができてしまう。

ChangeLog メモファイルだけ、バックアップ・ファイルを作るようにした方がスマートじゃなかろうか。もしそうしたければ、ファイル変数を使う手がある。方法は簡単で、ChangeLog メモファイルの末尾に次のようなコードを入れるだけ。

^L
;;; Local Variables: ***
;;; mode: change-log ***
;;; clmemo-mode: t ***
;;; vc-make-backup-files: t ***
;;; End: ***

バックアップ・ファイルのできる VC

ひげぽん氏のエントリーのコメントで、miyagawa 氏が

svkを使うと .svn ディレクトリがないので普通にバックアップファイルができます。

と書いている。基本、Emacs は VC 管理下のバックアップ・ファイルは作らない方針だから、svk 用のコードがまだ書かれてないだけじゃないかと思う。(svk は使ってないので当て推量だけど) もしそうなら、いつか誰かが svk 用のコードを書いて、バックアップ・ファイルが作られなくなる日が来るかもしれない。そして、大低そういう事に気づくのはバックアップ・ファイルが要る時だったりするもの。

実はこれ、自戒的なコメント。ぼくの使ってる Bazaar-NG という VC ツールもバックアップ・ファイルを作ってしまう。時々思い出して、バックアップを まだ 作るか確かめるようにしよう。

No comments:

Post a Comment