サーバーとのやり取りを試みるたびに、Mercurial は「abort: HTTP Error 400: Bad Request」を返します。認証を使用していないため、問題はありません。他に 3 人の開発者が、同じバージョンの Mercurial (2.2.3) がインストールされた同じレポで作業しています。問題はなかったので、.hg フォルダー内の何かが破損していると思われます。しかし、私は本当に手がかりがありません。
新しいディレクトリからクローンを作成して作業することができました。ただし、約 4 時間後、新しいディレクトリでも同様の現象が発生し始めました。その期間に私が行ったことは、コミット、プル、およびプッシュだけでした。数時間後にコミットしてプルしようとすると、再びエラーが発生しました。
着信のデバッグ ログは次のとおりです (hg --debug --traceback incoming):
using http://myserver/myapp
sending capabilities command
comparing with http://myserver/myapp
query 1; heads
sending batch command
searching for changes
taking initial sample
searching: 2 queries
query 2; still undecided: 208, sample size is: 200
sending known command
Traceback (most recent call last):
File "mercurial\dispatch.pyo", line 88, in _runcatch
File "mercurial\dispatch.pyo", line 740, in _dispatch
File "mercurial\dispatch.pyo", line 514, in runcommand
File "mercurial\dispatch.pyo", line 830, in _runcommand
File "mercurial\dispatch.pyo", line 801, in checkargs
File "mercurial\dispatch.pyo", line 737, in <lambda>
File "mercurial\util.pyo", line 472, in check
File "mercurial\extensions.pyo", line 144, in wrap
File "mercurial\util.pyo", line 472, in check
File "hgext\mq.pyo", line 3528, in mqcommand
File "mercurial\util.pyo", line 472, in check
File "mercurial\commands.pyo", line 3894, in incoming
File "mercurial\hg.pyo", line 513, in incoming
File "mercurial\hg.pyo", line 472, in _incoming
File "mercurial\bundlerepo.pyo", line 342, in getremotechanges
File "mercurial\discovery.pyo", line 45, in findcommonincoming
File "mercurial\setdiscovery.pyo", line 184, in findcommonheads
File "mercurial\wireproto.pyo", line 116, in plain
File "mercurial\wireproto.pyo", line 164, in _submitone
File "mercurial\httppeer.pyo", line 170, in _call
File "mercurial\httppeer.pyo", line 118, in _callstream
File "urllib2.pyo", line 406, in open
File "urllib2.pyo", line 519, in http_response
File "urllib2.pyo", line 444, in error
File "urllib2.pyo", line 378, in _call_chain
File "urllib2.pyo", line 527, in http_error_default
HTTPError: HTTP Error 400: Bad Request
abort: HTTP Error 400: Bad Request
前述のとおり、クローンは作成できますが、incoming、outgoing、pull、または push を実行しようとすると、このエラーが発生します。