ターミナルと異なる文字コードのファイルをbzr diffする時の対処とか
今まではWinMergeで差異確認してたので困ってなかったけど、Mac, Linuxのターミナル上でcp932のソースコードをbzr diffすると、ターミナル上で文字化けする。
>http://www19.atwiki.jp/bazaar/pages/13.html
コマンドラインでbzr diffを使うと文字化けすることがありますが
これはテキストとコマンドラインのエンコーディングが異なるからです。変更前後でテキストのエンコーディングが同じであればパイプで
エンコーディング変換ツールや外部の差分ツールに引き渡して表示できます。例
>bzr diff -r1..2 | iconv -f テキストのエンコーディング -t CP932
>bzr diff -r1..2 | gvim - -R
Bazaar Wikiの上記の記述を参考に、
bzr diff | iconv -f cp932
でcp932のテキストファイルをUTF-8環境下でも文字化けせずに表示できた。(-t 以降はデフォルトでUTF-8なので省略可。)
ただ、毎回入力するのは面倒くさい。
>http://www19.atwiki.jp/bazaar/pages/13.html
[ALIASES]
diff=diff --using=WinMerge
のように、
[ALIASES] cp932diff=diff | iconv -f cp932
とすると、|でエラーが出る。まぁ|以降はBazaarのコマンドじゃないもんね。
代わりに、.bashrcに
#ついでにcdiffにしておく alias bzrdiff='bzr cdiff | iconv -f cp932'
でお手軽運用にした。