EmacsでMercurialを使う

ほとんどのプロジェクトではsubversion使うことが多いんですよね。
ファイル名の問題とかみんなが使い慣れてるっていうのがあるので大体そうなります。

僕個人はMercurial使ってます。

で、hgsubversionを使うことにしたのでインストールやら設定やらをメモしておきます。

mercurial公式にhgsubversionのインストール方法が載ってるのでその通りにします。
これはエクステンションなので自分で入れる必要があります。
とは言え、特に難しいこともないので問題ないでしょう。

$ hg clone svn+http://localhost/svn/trunk

みたいな感じでクローンできます。
あとは普通のhgと同じです。pullしていじったのをコミットしてpushする。
rollbackできるのがありがたいですね。


ここからが本番です。EmacsMercurialを使えるようにします。

まずmercurial.elが必要なのでソースコードをダウンロードしてきます。
展開したらcontribの中に入ってるはずです。
これを.emacs.dの中とかに入れてemacsが読み込めるようにします。
init.elに

(require 'mercurial)
(setenv "HGENCODING" "utf-8")

と書きます。

HGENCODING環境変数は設定しておかないとコミットコメントを日本語で書いた時エラーになってしまいます。

あとhg-updateがnot implementedなのでごまかしておきます。

; mercurial.el
(defun hg-update ()
  (interactive)
  (shell-command "hg update"))
; (error "not implemented"))
; シェルで実行してしまうように変更

これでとりあえずはEmacsから実行できるようになりました。

各コマンドはC-c h hでヘルプが出るのでそちらを見れば解決します。

今回はHGENCODINGを設定するところでハマりました。