Назад | Перейти на главную страницу

Ошибка mercurial hgwebdir с базисом в apache2

У меня странная ошибка, которую я пытаюсь отследить. В эти выходные я пытался установить Mercurial на своем домашнем сервере. Кажется, он работает до такой степени, что я пытаюсь правильно опубликовать репозитории.

Я использую Ubuntu 10.04 LTS с Mercurial версии 1.4.3.

Я следил за руководство по hgwebdir и все вроде работает отлично, я могу тянуть и нажимать свои локальные репозитории. Затем я попытался добавить базовую смену аутентификации

ScriptAliasMatch     ^/hg(.*)      /var/hg/hgwebdir.cgi$1
<Directory "/var/hg">
    Options ExecCGI FollowSymLinks
    AllowOverride None
</Directory>

к

ScriptAliasMatch     ^/hg(.*)      /var/hg/hgwebdir.cgi$1
<Directory "/var/hg">
    Options ExecCGI FollowSymLinks
    AllowOverride None
    AuthType Basic
    AuthName hgwebdir
    AuthUserFile /usr/local/etc/httpd/users
    Require valid-user
</Directory>

Это работает именно так, как я ожидал, когда я перехожу в каталог через веб-браузер, но когда я hg push получить длинный отрывок, повторяющий

File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
  result = func(*args)
File "/usr/lib/python2.6/urllib2.py", line 855, in http_error_401
  url, req, headers)
File "/usr/lib/python2.6/urllib2.py", line 833, in http_error_auth_reqed
  return self.retry_http_basic_auth(host, req, realm)
File "/usr/lib/python2.6/urllib2.py", line 843, in retry_http_basic_auth
  return self.parent.open(req, timeout=req.timeout)

с последующим

File "/usr/lib/pymodules/python2.6/mercurial/keepalive.py", line 249, in do_open
  self._start_transaction(h, req)
File "/usr/lib/pymodules/python2.6/mercurial/url.py", line 419, in _start_transaction
  return keepalive.HTTPHandler._start_transaction(self, h, req)
File "/usr/lib/pymodules/python2.6/mercurial/keepalive.py", line 342, in _start_transaction
  h.endheaders()
File "/usr/lib/python2.6/httplib.py", line 904, in endheaders
  self._send_output()
File "/usr/lib/python2.6/httplib.py", line 776, in _send_output
  self.send(msg)
File "/usr/lib/pymodules/python2.6/mercurial/url.py", line 247, in _sendfile
  connection.send(self, data)
File "/usr/lib/pymodules/python2.6/mercurial/keepalive.py", line 519, in safesend
  self.connect()
File "/usr/lib/pymodules/python2.6/mercurial/url.py", line 273, in connect
  keepalive.HTTPConnection.connect(self)
RuntimeError: maximum recursion depth exceeded while calling a Python object

Я немного не понимаю по этому поводу. Я действительно не уверен, почему добавление авторизации, похоже, работает нормально через мой веб-браузер, но выдает эти ошибки из hg. Любая помощь будет принята с благодарностью.

получил ответ от великих людей на IRC-канале Mercurial. Это было рассмотрено в Проблема2255. Я внес их изменения, и это работает как шарм.