2012/04/10 正式にUTF-8でのファイル名保存に対応したバージョン1.7.10がリリースされました。(参照: https://opcdiary.net/?p=6414)
というものが昨年末にmsysGitのサイトで公開されています。一応正式なリリース扱いとはなっていないようです。
内容的にはmsysGitをUNICODEバイナリ化して、Gitリポジトリへのコミット時にファイル名をmbcsからutf-8に変換するもののようです。また、コミットログの表示についても特別なpagerの設定はいらない(すると逆に文字化けする)と言った内容となっています。
さて、これで今までのファイル名、ディレクトリ名に漢字使うとまずいが解決したかというと、なんて言うか、まぁいまいちなところもあるいわけです。
たとえばstatusコマンドや、addコマンド実行時に表示されるファイル名が何ともいけてません。
まぁある意味想像通りですが。漢字のファイル名がエスケープ表示されています。
ただ、このエスケープ表示は以下のコマンドを設定すると改善されます。
$ git config --global core.quotepath false
PAGERでnkfを使う設定をしなくてもコミットログは文字化け無しで表示されます。
あとは、TortoiseGitのダイアログ類でファイル名が文字化けするようになったりなどと言った弊害もあります。(追記:22:01)いやこれも(x86 x64)
まぁ正式なリリースでは無いので、バージョン追従されるか微妙ですし、確かにファイル名の漢字を使う場合の問題点は解決されていますが、このまま使い続けるかは微妙な感じです。
追記(2012/02/09 11:47)
現時点において把握している問題点は、通常版ではGit Bash上で漢字の入力に問題が無い設定の場合でも、UNICODE版を使用すると、通常版から設定(~/.profile, ~/.inputrc)を変更していないにもかかわらずGit bashでIMEから漢字を入力すると文字化けするという状態になっています。(アンインストールして通常版に戻せば入力できます。)
通常版からbash.exe, sh.exeをコピーしてみましたがそれでも漢字を入力すると文字化けします。
とりあえずこれ以上の原因調査は出来ていない状態。DOSプロンプトでは漢字の入力については問題無いので、当面はGit Bashをあきらめてコマンドプロンプトで作業する方が良さそうです。(ただ、コマンドプロンプトだとgit logしたときにlessにこのコンソールは機能不足だと怒られ、RETるするまで動作が止まるので、最初にびっくりする。)
あとは、GUIツールから操作すると割り切るかですね。
2012/02/09 22:43
コメント
statusなどでファイル名の漢字がエスケープ表示されてしまう件は”git config –bool core.quotepath false”と設定すれば、正しく漢字でのファイル名が表示されるようになりました。
Unicodeバイナリ使用時の設定項目は https://github.com/kblees/git/wiki を参照。あとMLは注目しておいた方がよさそう。。このスレッドとか。 http://groups.google.com/group/msysgit/browse_thread/thread/408f7613d096f2c0
とか謎URLを貼ってみたり
本文側も修正しました。
設定ファイル的にはgit/etc/profileにexport LESSCHARSET = utf-8ってlessの設定(環境変数)が1行追加されているだけ。
sh.exeを非UNICODEの通常パッケージのものと入れ替えてもだめ。とりあえず現状詰んでます。
とりあえずDOSのコマンドプロンプトではOK