環境
CentOS 6.3, Mercurial 1.4 (yum からインストール)
事象
hg-ssh を使った Mercurial へのアクセスに問題が発生した。 hg-ssh の実行時に以下のエラー。
remote: AttributeError: 'module' object has no attribute 'request'
解析と解決
香り屋先生が遭遇した事象 の逆の問題みたいだ。yum でインストールされる Mercurial のバージョンが古いため、hg-ssh で使われている dispatch.request が Mercurial のコード中に存在しない。
/usr/lib64/python2.6/site-packages/mercurial/dispatch.py
のコードを読み解いたら引数を list で渡せばよさそうだったので、/usr/bin/hg-ssh
を次のように変更。
- dispatch.dispatch(dispatch.request(cmd)) + dispatch.dispatch(cmd)
試してみたら問題なく動いたので OK。
でも yum でインストールされるプログラムなんだから、こんなバグが残っているのはおかしくないか。まぁ動けば良かろうなのだ。