2012-08-23 41 views
6

任何時候我嘗試與服務器進行任何交互時,Mercurial都會返回「中止:HTTP錯誤400:錯誤的請求」。我們沒有使用任何身份驗證,所以這不是問題。我們有三位開發人員在安裝相同版本的mercurial時使用相同的回購(2.2.3)。他們沒有任何問題,所以這讓我覺得我正在損壞.hg文件夾中的某些東西。但我真的不知道。Mercurial不斷返回錯誤400:錯誤的請求

我能克隆和工作從新目錄就好了。但是,大約4個小時後,它又開始在新目錄中發生。在那段時間我做的唯一的事情是提交,拉和推。當我幾個小時後犯下並試圖拉扯時,那是我再次遇到錯誤的時候。

這裏是調試日誌傳入(HG --debug --traceback來電):

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 

正如我剛纔所說,我可以做一個克隆,但如果我嘗試運行傳入,傳出,拉或推,我得到這個錯誤。

回答

6

我能夠運行

hg rollback 

有一次,我跑了,未提交我的文件來解決這個問題(但保留了變化,所以我可以看到在汞狀態被修改的文件)。然後,我可以運行傳入並拉動。然後,我重新提交了我的代碼並將其推出,沒有任何問題。

因此,當我提交時,一定會損壞,只是不知道爲什麼。

+0

我有完全相同的問題,並修復它,謝謝。 –

2

我不知道在這個特定情況下有什麼問題。但是我們遇到了一個與結果相同的問題 - 傳入和拉出命令失敗,並返回400 Bad Request。所以這裏是收到如何調查失敗的情況,以防hg -v --debug無效。

Fiddler捕獲和顯示HTTP流量。然後如下運行善變的要求:

hg --config http_proxy.host=127.0.0.1:8888 pull 

的配置使得它在上的提琴手端口8888監聽然後通過提琴手,請求重定向,你可能會發現紅色400答覆,並在督察窗格來查看整個消息,而不僅僅是代碼。

有關我們的問題,調查和解決方法的詳細信息,請參閱here