mvc.el

mvc.el とは?

Mercurial や Subversion など (git や bazaar は基本的なコマンドが扱える程度) に対応した psvn.el 的なメニューベースのクライアントです。

phg thumbnail0

そこそこ高速に動作する上複数バッファとタブに対応しているため、適切なディレクトリ構成ならばストレスの少ない小気味良い環境を構築できます。

作者は 10000 ファイル以上のプロジェクトで毎日使用しています。もちろん毎回大量のファイルを扱うわけではなく、担当ディレクトリ以下の数 100 ファイル程度を主に相手にしていますが。

mvc.el.20090101_0.bz2 (19920 bytes sha1sum:5ad83d2696987b560d23ce8c4100342a1605301c)

そのうち CVS にも対応したいなと思っています。

何かありましたら mail address へのメイルや 電言板 まで、お気軽にどうぞ。

実装状況

Mercurial git bazaar Subversion CVS
ほぼ実装済み 実装中 実装中 ほぼ実装済み 未実装

TODO

 

News

2009年1月1日(木)
mvc.el.20090101_0.bz2
  • Subversion の status, commit と revert に対して recursive flag を指定できるようにした
  • mvc-default-ignore-recursive-regexp-list を追加
  • mvc-status 画面を少し整理
  • 細かい不具合を修正

recursive flag とは Subversion の --non-recursive (--depth=immediates) 的なふるまいをさせるフラグです。 (というか Subversion 以外ではそもそもコマンドが高速であり --non-recursive 的なオプションが存在しないため、対応していません。)

Subversion を使う場合、 mvc-default-ignore-recursive-regexp-list に大量のファイルが含まれるパスを指定しておくと、マッチするディレクトリでは --non-recursive オプションが付加され、再帰的に探索しないかわりに mvc-status が高速になるため便利です。

2008年12月21日(日)
mvc.el.20081221_0.bz2
  • パス名に対する regexp で mark/unmark できるようにした
2008年12月20日(土)
mvc.el.20081220_0.bz2
  • revert 時に especial バッファを削除するようにした
  • Subversion の especial propset/propdel でマークしたファイル群に対して操作できるようにした
  • mvc-log-mode のスペースキーに scroll-up を割り当てた
  • mvc-local-after-save-hook-hash による変更候補マーク "m" も mvc-face-status-modified で描画するようにした
2008年12月13日(土)
mvc.el.20081213_0.bz2
  • テンポラリファイルの出力先を指定できるようにした (commit 系コマンドがリモート化可能に)
  • mvc-status-mode-quit (mvc-status で Q キー) を追加し、関連バッファを削除できるようにした
  • Subversion の especial propset/propdel で --recursive を設定できるようにした
  • 非同期関数の実行中に elscreen でスクリーン構成を変更すると非同期関数の終了時にエラーが発生する不具合を修正した
  • mvc-default-process-connection-type を追加した
2008年11月30日(日)
mvc.el.20081130_0.bz2
  • 同名バッファ対策処理が正しく動作していなかった不具合を修正
  • annotate が動作していなかった不具合を修正
2008年9月28日(日)
mvc.el.20080928_0.bz2
  • 「ディレクトリローカル」な扱いを廃止し「バッファローカル」ベースに変更した
  • 同一ディレクトリで複数のバージョンコントロールプログラムに対応した
  • 表記の揺れを統一した

ちょっと多目の変更が入っているので、問題があるかも? (一通り操作をして問題ないことは確認していますが)

2008年9月20日(土)
mvc.el.20080920_0.bz2
  • after-save-hook まわりの不具合を修正 (20080905 でのエンバグ)
2008年9月5日(金)
mvc.el.20080905_0.bz2
  • pull すべきところで push していた不具合を修正 (20080904 でのエンバグ)
  • その他細かい修正
2008年9月4日(木)
mvc.el.20080904_0.bz2
  • git と bazaar にとりあえず対応中 (メニューと基本コマンドは動くかな? 作者はこれらに慣れていないので、妙な実装になっている可能性大)
  • 細かい不具合の修正
2008年8月30日(土)
mvc.el.20080830_0.bz2
  • Subversion のプロパティに対応
  • 細かい不具合の修正
2008年8月15日(金)
mvc.el.20080815_0.bz2

以下の修正をしました。

  • kill-buffer の hook まわりがおかしかった不具合を修正
2008年6月26日(木)
mvc.el.20080626_0.bz2

以下の修正をしました。

  • rename に失敗する不具合を修正
2008年5月18日(日)
mvc.el.20080518_0.bz2

以下の修正をしました。名無しさんレポートありがとうございます!

  • Mercurial がインストールされていない環境で mvc.el が利用できない不具合を修正
  • 起動時にディレクトリを聞くようにした
2008年5月13日(火)
mvc.el.20080513_0.bz2

とりあえず。

作者は常用してますが、まだ細かい問題があるかもしれません。

 

Screenshot

画像をクリックすると大きな画像を表示します。

phg thumbnail0

 

導入手順

mvc.el を load-path の通った場所に置き、 .emacs へ次のような 1 行を付け足すだけです。

(require 'mvc)

M-x mvc-status で起動します。

好みによって

$ emacs --batch --funcall batch-byte-compile mvc.el

などとしてバイトコンパイルしても良いかもしれません。(作者は速度的に困ってないのでしていません。(Athlon X2 4850e から C3-1GHz あたりの機械でも十分?))

戻る