ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

Windows-LinuxでのMercurialのファイル名文字化け

f:id:shinsuke789:20141003110840p:plain

Windows環境でSubversionからの移行を視野にいれてMercurialの検証を行っています。

Mercurialサーバーの構築がだいたい終わったので、クライアントの検証に移りました。

環境

サーバー

OS CentOS 6.3
Mercurial 3.1.2

クライアント

OS Windows 7 SP1
TortoiseHg 3.1.1
SourceTree 1.6.5
Mercurial 3.0

TortoiseHg、SourceTreeで検証を行いました。

日本語のファイル名が文字化けする

cloneの処理は問題なく行われていたので大丈夫そうだと思ってたのですが、
日本語ファイル名のファイルを見てみると文字化けしてました。

検証したクライアント両者ともで確認しました。

Mercurial本体の日本語対応はなされているようですが、クライアントは完全に対応していないようです。

文字化けの原因

サーバーとクライアントで扱う文字コードが異なるのが原因のようです。
Windowsはファイル名にCP932を、LinuxUTF-8を使用しています。

TortoiseHg、SourceTreeともその辺りの制御がうまくできていないように思います。
今後のバージョンアップで文字化けが解消することを願います。

解決方法

参考サイトに解決方法が書いてあります。

TortoiseHgで「win32mbcs」の拡張を有効にした場合次のエラーが発生しcloneが停止しました。

中止: [win32mbcs] filename conversion failed with cp932 encoding

[終了値: 255]

もう1つの拡張である「hg-fixutf8」はその都度行わないといけなさそうなので却下しました。

SourceTreeは情報がありませんでした。

クライアントが全滅なので、今のところ通常のコマンドを使うのが解決策になります。

Mercurial

結構古いので新品の扱いはないです。

入門Mercurial Linux/Windows対応

入門Mercurial Linux/Windows対応

Mercurial: The Definitive Guide (Animal Guide)

Mercurial: The Definitive Guide (Animal Guide)