mvc.elバージョンアップ

mvc.elがバージョンアップしていた。
mvc.el.20080928_0.bz2 wac's webpage./mvc.el


「同一ディレクトリで複数のバージョンコントロールプログラムに対応した」が良い!
mvc-default-program-search-order-list をなめて、ヒットしたscm全てのstatusバッファが生成される。
各バッファは、M-C-i/M-C-S-i で切り替えられる。
この機能のおかげで、オレオレ拡張が下記のようにすっきりと纏まった。
本来は、mvc-change-to-xxx, mvc-clear-scm なんてのは必要ないのだが、ウチのcifsが不安定なのでディスクアクセスを極力減らそうと言う苦肉の策。。

追記

最近cifsがちょっと安定しているので、mv-change-to-xxx を使わずに、素の状態で使ってみた。
ものすごく便利!!
ありがとう wac さん。
ログコメントバッファを共有とか、コピーできると便利そうなので、後で拡張する予定。

(defun mvc-change-to-mercurial ()
  (interactive)
  (setq mvc-default-program-search-order-list '(mercurial)))

(defun mvc-change-to-svn ()
  (interactive)
  (setq mvc-default-program-search-order-list '(subversion)))

(defun mvc-clear-scm ()
  (interactive)
  (setq mvc-default-program-search-order-list '(mercurial git bazaar subversion cvs)))



;; scm毎に footerの色を変更
(defface mvc-face-status-footer-for-svn
  '((((type x w32 mac) (class color)) (:foreground "black" :background "#FA6CC847FFFF")))
  "status footer for svn"
  :group 'mvc-faces)

;; over ride
(defun mvc-insert-with-face (string face)
  (if mvc-default-use-color
      (let ((start (point)))
	(insert string)
        (if (and (equal face 'mvc-face-status-footer)
		 (equal mvc-local-program 'subversion))
            (setq face 'mvc-face-status-footer-for-svn))
	(set-text-properties start
			     (+ start (length string))
		     (list 'face face)))
    (insert string)))