mercurialは起動時にコマンドライン引数の内--config、--cwd、--repositoryオプションの処理をしてコマンドラインから削除してからプラグインのロードを始める。
fixutf8はロードされた際にコマンドラインをUnicodeで取得してutf-8に変換している。
この時に行われるコマンドラインを削除する処理が適当で、--config、--cwd、--repositoryオプションを削除しないといけないのに、削除されたコマンドライン数分前のコマンドラインを削除している。
このためhg -R /home/witten/hg commitのコマンドラインはcommitが残るがhg commit -R /home/witten/hgのようなコマンドラインは/home/witten/hgが残ってしまいそんなコマンドはないとエラーが表示される。
tortoisehgが作成するコマンドラインはhg commit --verbose --repository /home/witten/hg -m logのためエラーが発生する。
2009年7月5日日曜日
fixutf8を有効にすると --repositoryが使えなくなる
--repositoryを指定すると hg: unknown command path名と表示される。
tortoisehgでcommit出来なくなるのもこれが原因
tortoisehgでcommit出来なくなるのもこれが原因
2009年7月3日金曜日
mercurial 1.3 + tortoisehg 0.8
windowsでfixutf8を有効にするとcommitできない。(すべてアルファベットでも)
それ以外のコマンドlogとstatは一応問題なく動いている。
それ以外のコマンドlogとstatは一応問題なく動いている。
2009年7月1日水曜日
fixutf8でUnicodeDecodeErrorを出さないようにする
fixutf8を使ってaddremoveをするとutf-8と元々の文字コード(日本語版のWindowsならcp932)の2つが混在し必ずUnicodeDecodeErrorが発生する。
win32helper.pyの81行目u = s.decode('utf-8')のdecode関数に'ignore'か'replace'の引数を追加することで2つの文字コードが混在していてもUnicodeDecodeErrorが発生しなくなる。
win32helper.pyの81行目u = s.decode('utf-8')のdecode関数に'ignore'か'replace'の引数を追加することで2つの文字コードが混在していてもUnicodeDecodeErrorが発生しなくなる。
fixutf8を使うために設定しないといけないこと
環境を変えたとたんに動かなくなり、いろいろ設定を変更して動くようになった。
1. HGENCODINGをutf-8にする。しなくても一応動くがascii以外のログメッセージがコミット出来なくなる。
2. エディタはutf-8でbomを付けないものを使用する。notepadはbomを付けるので別のエディタにする。
fixutf8の説明に一切書いてないので苦労した。
1. HGENCODINGをutf-8にする。しなくても一応動くがascii以外のログメッセージがコミット出来なくなる。
2. エディタはutf-8でbomを付けないものを使用する。notepadはbomを付けるので別のエディタにする。
fixutf8の説明に一切書いてないので苦労した。
登録:
投稿 (Atom)