Mercurialは便利な分散バージョン管理システムです。結論から言うと、『Mercurialは設定すれば日本語が化けない。』すごくすてき。
日本語が化ける箇所
- コミットメッセージ
- ファイルの内容
- ファイル名
mecurialの場合
- コミットメッセージ
- とくに何もしなくても、Unicodeで保存されてUtf-8になるみたい。便利だね。
- ファイルの内容。
- 保存時の文字コードで保存される。
- ファイル名
- Windowsでの日本語ファイル名はCP-932で構成。しかし、Ubuntu/MacはUtf8で出来ている。つまり、ファイル名は、文字化けが起きる。
ファイル名文字化けを防ぐ
文字化けを防ぐ方法は、環境を限定すること。Windowsだけで使う。Ubuntuだけで使う。
これは不便すぎる。
不便すぎるから、何とかしたいです。つまりWindows環境ではCo/Ci時にファイル文字コードを修正したい。
日本語ファイル名を可能にするfixutf8を入れる
Windows環境でhg-fixutf8をダウンロードする。
hg clone http://bitbucket.org/stefanrusek/hg-fixutf8/
mercurial.ini は次の場所にありました。
ユーザー環境 | C:\Documents and Settings\takuya_1st\Mercurial.ini |
システム全体 | C:\Program Files\Mercurial\Mercurial.ini |
エラー発生した場合。
僕の環境では動きませんでした。python 2.5.2/ mercurial 1.2.1
No module named ctypes
hg clone failed to import extension fixutf8 from programa/Mercurial/hg-fixutf8/fixutf8.py: No module named ctypes Mercurial Distributed SCM
mercurialのCREWを入れるといいらしい。
Windows版Mercurial公式からcrewバージョンを入れたら直った。
mercurial-crew_XXXX.exe
公式、http://code.google.com/p/mercurial-nightly-builds/downloads/list
今後は最新版を導入すれば問題なく動くらしい。
no module named ctypesのエラーのついて詳しくはここ。
http://bitbucket.org/stefanrusek/hg-fixutf8/issue/5/ctype-module-not-found
追記
久々にやろうとしたら動かなかったのでメモ
2009/10/13時点での話ですが、fixutf-8ではマルチバイトがらみの解決は結局無理、ということらしいです。