2009年2月22日日曜日

Mercurialでファイル名に0x5cがあるとコミットできない

2chで話題になっていたんで試してみたら見事にcommitできず。
環境は、mercurial 1.1.2 windows win32mbcs extention有効状態
直接ファイル名を指定するとcommitできるけど、
hg commitだと追加したファイルだと認識されない。
原因はutil.pyでファイル名とディレクトリを分ける処理でrfind(sep)としているから。
これ以外にもフォルダ名の終端が'0x5c'だとabortしたりと悲惨なことになってた。
原因はosutil.cの_listdirでファイル名の終端がセパレーターか調べているところで、最後の文字がマルチバイトか調べてないから。

win32mbcs extentionが出て来たころはここまで酷くなかったと思ってたんだが。

0 件のコメント:

コメントを投稿