mvc.el

mvc.el とは?

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

phg thumbnail0

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

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

Subversion 1.6 以降
mvc.el.20111023_1.xz (20032 bytes sha1sum:eb6c3c9fbb259e203fbaec2f9a2d181fbc14e14c)
Subversion 1.5 系
mvc.el.20090425_0.bz2 (20097 bytes sha1sum:0af48ab32dc049f5ad3034b3f258631d6bdf0b8e)
Subversion 1.4 以前
mvc.el.20090307_0.bz2 (20053 bytes sha1sum:9619f93df191d9e0034fa8a9f3987ee67adfe3cc)

何かありましたら twitter @wachikun 、 wac@umiushi.org へのメイルなど、お気軽にどうぞ。

実装状況

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

TODO

 

News

2011年10月23日(日)
mvc.el.20111023_1.xz (20032 bytes sha1sum:eb6c3c9fbb259e203fbaec2f9a2d181fbc14e14c)
  • とりあえず ediff で比較できるようにした
  • elscreen 使用時にポイントがおかしくなる不具合を修正

うう、全面的に書き直したい。。。。

2010年1月10日(日)
mvc.el.20100110_0.bz2
  • とりあえず Bazaar で pull できるようにした
Subversion 1.6 以降
mvc.el.20100110_0.bz2 (20345 bytes sha1sum:614d2cbe303df07c0f24186a0e7196e6424f7c5c)

Bazaar/Git の mvc.el 側の status 処理に問題があって、異常に重いです。 Emacs の bzr-trunk 程度でイラっとするくらいに。

今、このあたりの処理を外部コマンドに追い出し、バックグラウンドで処理するための用意をしています。

2010年1月7日(木)
mvc.el.20100107_0.bz2
  • Bazaar まわりの処理が動作していなかった不具合を修正
  • Git と Bazaar で mvc-status-mode-toggle-display-unmodified が正しく動作していなかった不具合を修正
Subversion 1.6 以降
mvc.el.20100107_0.bz2 (20228 bytes sha1sum:6c3c8faef28a8390c5f2a3940a72851786c2656c)
2009年10月2日(金)
mvc.el.20091002_0.bz2
  • svn status でコンフリクトを認識しないことがあった不具合を修正
  • svn update に --force を追加した
Subversion 1.6 系
mvc.el.20091002_0.bz2 (20215 bytes sha1sum:0d47ff9d8689bd2f8947a50196b9c88b23e513f6)
2009年6月13日(土)
mvc.el.20090613_0.bz2
  • Subversion 1.6 に対応 (1.5 以前はサポートしません)
Subversion 1.4 以前
mvc.el.20090307_0.bz2 (20053 bytes sha1sum:9619f93df191d9e0034fa8a9f3987ee67adfe3cc)
Subversion 1.5 系
mvc.el.20090425_0.bz2 (20097 bytes sha1sum:0af48ab32dc049f5ad3034b3f258631d6bdf0b8e)
Subversion 1.6 系
mvc.el.20090613_0.bz2 (20131 bytes sha1sum:17adab7b2557036cfad03b46b9f01d55a1f5f1fe)
2009年4月25日(土)
mvc.el.20090425_0.bz2
  • Subversion 1.5 以降で update 時にコンフリクトすると戻ってこなくなる不具合を修正 (1.4 系を使う場合は一つ前の mvc.el.20090307_0.bz2 を使用してください)
2009年3月7日(土)
mvc.el.20090307_0.bz2
  • especial propset/propdel の --recursive 実行後に especial バッファの表示がおかしかった不具合を修正
  • mvc-status-mode-quit でバッファを削除した場合、そのウィンドウへは他の mvc status バッファを優先して表示するようにした
2009年2月8日(日)
mvc.el.20090208_0.bz2
  • especial propset/propdel の --recursive 設定ボタンを recursive flag 設定ボタンと同じにした
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 あたりの機械でも十分?))

戻る