Cygwinのtigは日本語が文字化けするので自分でコンパイルした

git(に限らないけど)でリポジトリの履歴をさかのぼりながらdiffを見たりするにはgitkを使えばいいんだけど、こいつはTk製のGUIアプリなのでssh接続してるリモートサーバ上では使うのが難しい。*1
そんな時に便利なのがncursesベースのtigというツールで、これならCUI環境でも実行できるのでssh越しでも使えるし、そうでなくても普段からターミナルで作業しててマウスとか持ち替えたくねーという不満を解消してくれる。


というわけで、丁度TL上で話題になってたんでCygwinにも入れてみたんだけど、パッケージのやつだとどうも日本語が文字化けしてしまう。
普通にgitコマンド使う分には文字化けなんてしないしgit自体には問題はないと思うんだけど、git show | tigとかでも文字化けしちゃうのでncurses周りかなーと思ってlddしたらやっぱりncursesにリンクしてたので、ソース落としてきてncurseswにリンクし直すようにしたら解決した。



※2011/11/11 久しぶりに新しいの(tig-0.18)落としてきてビルドしようと思ったら、なんかLIBS=-lncurseswじゃダメだったので修正。


配布元の説明書きにはLDLIBS=-lncurseswをつけるんだぜみたいに書いてあるけど、つけてもCygwinだとだめっぽかったのでこんな感じでいけた。

cd ~/tmp
wget tigのtarball ... gitで最新版持ってきてもいいかも
tar zxf tigのtarball
cd tig-x.x.x
LDFLAGS=-L/usr/lib/ncursesw CPPFLAGS=-I/usr/include/ncursesw ./configure
make
make install

これで日本語でも文字化けしないようになった。Cygwinでも使えるようになった!
ちなみにUbuntuでは普通にパッケージで入れたやつで使えてます。



※以下はなんか古いバージョンでは通ったけどいつの間にかダメになってたケース。


配布元からソースを落としてきて、説明書きにあったように-lncurseswを付けてビルドしてみる。*2

cd ~/tmp
wget tigのtarball ... gitで最新版持ってきてもいいかも
tar zxf tigのtarball
cd tig-x.x.x
LIBS=-lncursesw ./configure
make
make install

*1:X11 ForwardingとかCygwin/XとかXmingとか使えば……

*2:付けずにビルドしてみたらやっぱり文字化けした。