2012-08-23 17 views
6

Zawsze, gdy próbuję wykonać jakąkolwiek interakcję z serwerem, Mercurial zwraca "Przerwij: HTTP Błąd 400: Złe żądanie". Nie używamy żadnego uwierzytelnienia, więc to nie jest problem. Mamy trzech innych programistów pracujących nad tym samym repozytorium z tą samą wersją zainstalowanego mercurialu (2.2.3). Nie mieli żadnych problemów, więc wydaje mi się, że coś korumpuję w folderze .hg lub coś podobnego. Ale naprawdę nie mam pojęcia.Powrotny Mercurial Błąd 400: Złe żądanie

Udało mi się sklonować i pracować z nowego katalogu. Jednak około 4 godziny później zaczęło się to znów dziać w nowym katalogu. Jedyne, co zrobiłem w tym okresie to: commit, pull i push. Kiedy popełniłem kilka godzin później i próbowałem się wycofać, to wtedy znowu otrzymałem błąd.

Oto dziennik debugowania dla przychodzących (Hg --debug --traceback przychodzące):

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 

Jak powiedziałem wcześniej, mogę zrobić klona, ​​ale gdy próbuję uruchomić połączenia przychodzące, wychodzące, pociągnij, lub popchnij, dostaję ten błąd.

Odpowiedz

6

udało mi się rozwiązać ten problem poprzez uruchomienie

hg rollback 

Raz wpadłem, że to uncommitted moje pliki (ale trzymane zmiany, więc mogłem zobaczyć zmodyfikowane pliki w statusie Hg). Byłem wtedy w stanie uruchomić przychodzące i ciągnąć. Następnie ponownie zatwierdziłem mój kod i wypchnąłem go bez żadnych problemów.

Coś musi zostać zniekształcone, kiedy popełnię, nie wiem dlaczego.

+0

Miałem dokładnie ten sam problem i to naprawiło, dzięki. –

2

Nie wiem, jaki jest problem w tym konkretnym przypadku. Ale mieliśmy inny problem z tym samym wynikiem - komendy przychodzące i pociagnięcia nie powiodły się z 400 Bad Request. Oto pokwitowanie, jak zbadać awarię, na wypadek, gdyby hg -v --debug nie pomogło.

Pobierz Fiddler do przechwytywania i ujawniania ruchu HTTP. Następnie uruchom rtęciowego wniosek w następujący sposób:

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

config powoduje przekierowania żądań poprzez Skrzypek, który nasłuchuje na porcie 8888. Następnie w Skrzypek, można znaleźć czerwoną 400 odpowiedzi w Inspektorów panelu, aby zobaczyć całą wiadomość , a nie tylko kod.

Możesz obejrzeć here, aby uzyskać szczegółowe informacje na temat naszego problemu, dochodzenia i rozwiązania problemu.

Powiązane problemy