CVS と Emacs

本ページでは、 Emacs から CVS を使う上での各種カスタマイズ等に関する情報をまとめてみました。

備考: 本ページに記載されているコードは我流によるものですので、 Emacs lisp 界隈における、より一般的な実装方法に関して、 ご存知の方は御教頂けると幸いです。

ファイルバックアップ設定(VC モード)

vc-make-backup-files 変数の description によれば、 この変数が nil ならそのファイルはバックアップされない、 とされています(デフォルト値は nil)。 実際、Emacs のある版まではその通りだったのですが、 ある版からこの変数によるバックアップ制御は機能しなくなってしまいました (経緯をご存知の方はご一報頂ければ幸いです)。

vc-make-backup-files が nil の場合にバックアップファイル生成を抑止するためには、 以下の defadvice が必要です。


(defadvice vc-before-save
  (around examine-vc-make-backup-files activate)
  "examine `vc-make-backup-files' (in vc-hooks.el) at first"
  (and vc-make-backup-files ad-do-it))

vc-make-backup-files に応じたバックアップファイルの生成

デフォルトオプション指定(PCL-CVS モード)

PCL-CVS モードでのデフォルトの cvs update および cvs checkout 実行は、 空のディレクトリは削除するオプション(-P)が指定されます。

C-u 付きで起動すればオプションを変更できますが、 個人的にはこのオプションが好きではありませんので、 出来れば -P 無しをデフォルトにしたいところです。

以下の設定を行うことで、 起動時オプションのデフォルト設定をカスタマイズすることが出来ます。


(eval-after-load "pcvs"
  '(progn
     (setf (cvs-flags-defaults cvs-update-flags)
           (cvs-defaults '("-d")) ;; オリジナル設定は '("-d" "-P")
           )
     (setf (cvs-flags-defaults cvs-checkout-flags)
           (cvs-defaults '("")) ;; オリジナル設定は '("-P")
           )
     ))

"-P" 無しの update/chekcout 起動