日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Mercurial 日本語ファイル名 文字化け 解決!!

2015-11-17
Mercurial 日本語ファイル名 文字化け



TortoiseHg
tortoisehg.bitbucket.org/ja/

2015年は この問題はどうなんだろう
使っていないからわからない。
ので試してみる

媒体 TortoiseHg :2015/11/04 3.6 released
(1) \temp\1を作成後
     ここにリポジトリ作成
(2) 右クリックで
   新しいテキスト ドキュメント.txt
   を作って HG commit
   うまくいきました
(3) 右クリックで
  (3-1) 新しいテキスト ドキュメントを作り
  1表2.txt という名前にします。
  (3-2) フォルダにフォーカスあわせて、
  HG commit で追加
 「変更はありません。」あれ?
  (3-3) 1表2.txt にフォーカスして  
  HG commit 今度はメッセージでました
 ファイルや差分を表示しません
  : [Error 2] 指定されたファイルが見つかりません。
  : 'C:\\temp\\1\\1\x95/2.txt'

直っていないようです

コメント、フォルダ、ファイル名取得、アクセスする際に、utf8とシフトジス変換すればいいだけのことなんですよ
すっごく簡単ですよ。
なんでできないの?。

きっと、WindowsでUTF8にすると過去の資産が文字化けして嫌だからとかいうのが理由じゃない?
こういうのって伸びないよ。人が去るだけ。

あの使いにくいgitでも対応してるのに。だから使う人が増えている。

Windowsで日本を含むマルチバイトセット圏の人は
このツールは 使い物になりませんね。

【Webで検索】
2012年の情報がヒットしました。
Mercurial 日本語ファイル 文字化け

20年以上くらい前のプログラムのように
バカの一つ覚えで、asciiコードとして処理するので
マルチバイト文字の環境(Windows)では、エラーになります。
またutf8としても扱っていません。

内容

win32mbcs.py TortoiseHgに同梱されていない。この時点でマルチバイト言語圏は無視されていることがわかる。
https://www.mercurial-scm.org/release/
ソースをダウンロードして
mercurial-3.6.tar.gzからwin32mbcs.pyを取り出し
dist\mercurial-3.6\hgext\win32mbcs.py

C:\Program Files\TortoiseHg\lib
に貼り付け。
mercurial.ini 場所
%HOMEDRIVE%%HOMEPATH%\mercurial.ini
c:\users\ユーザー名\mercurial.ini
[extensions]
hgext.win32mbcs=C:/Program Files/TortoiseHg/lib/win32mbcs.py

[win32mbcs]
encoding = CP932
環境変数
システム
名前  HGENCODING
値     cp932
ここを utf-8 とするとTortoiseHgでファイル名が壊れます
弊害 shift jis コードとして ファイル名を保存するので
utf8で操作する環境との間では互換性がありません


UTF8として保存:これがどの環境でも文字化けしない正しい動作でしょう。
[extensions]
#fixutf8 = C:\path\to\fixutf8.py
#※現在対応していないらしい

* extensions
https://www.mercurial-scm.org/wiki/UsingExtensions



環境変数の設定
setenv HGENCODING cp932

コントロールパネル システムとセキュリティ システム
→ システムの詳細設定
→ 詳細設定 環境変数
→ システムの環境変数(S)
→ 新規
変数名 HGENCODING
変数値 CP932
を登録。



まとめ Windows TortoiseHg
環境変数
コートページ 環境変数
変数名 変数値
シフトジス HGENCODING CP932
UTF8 HGENCODING UTF-8

mercurial.ini
コートページ mercurial.ini
場所
%HOMEDRIVE%%HOMEPATH%\mercurial.ini
シフトジス [extensions]
hgext.win32mbcs=path\to\win32mbcs.py

[win32mbcs]
encoding=CP932
UTF8 fixutf=path\to\fixutf8.py

※utf8のfixutf8.pyは、ver2以降対応していないらしい。

※シフトジス運用するとutf8な環境とやりとりできません。
テスト:2015/11

まとめ Windows cygwin
cygwinはUTF8に対応しているらしい。
環境変数 HGENCODING を設定するだけです
~/.bashrc
export HGENCODING=utf-8

環境変数に登録
echo export HGENCODING=utf-8 >> ~/.bashrc



TortoiseHg は 直す気がないようですね
UTF8に何年も対応していないことから
Windows環境ではmercurialは使わないほうが賢明ですね

mercurialのソースコードがpythonっていう時点で終わってますね。



PR

[PR]