git svn で日本語のログメッセージを読み書きする設定

環境によっていろいろだろうけど、うちんとこはとりあえずこれでうまくいきそう。

ロケールは ja_JP.EUC-JP (いまどき)。

以下、git config の設定は、そのリポジトリに限定したくなければ適宜 --global をつける。

読むほうは

$ git config core.pager "nkf -e | less -r"

書くほうは、

$ git config i18n.commitencoding UTF-8

あとは .git/hooks/commit-msg を用意して、実行パーミッションをつける。

#! /bin/sh

cp $1 $1.bak
nkf -w $1.bak > $1

これで、git log の表示も見れたし、svn のワーキングコピーでの svn log も見れた。多分。ただし、git commit 時の表示が化ける。

参考

Git Cheat Sheets JP

このページはすごい助かる。

追記 (2010-04-14)

と、いろいろやってみましたが、実際のところ環境のデフォルトがどうあろうと、LANG 環境変数を ja_JP.UTF-8 にしてしまうほうが全然楽だ、ということに今さら気づきました。