Mercurial push, abort: ошибка авторизации

у меня проблемы с нажатием на mercurial repository:

$ hg push
pushing to https://user:***@hg.domain.com/X_repo
searching for changes
abort: authorization failed

тот же URL (с теми же учетными данными) доступен через веб-браузер. Кроме того, я попробовал его без встраивания usr+pass в URL.

HTTPS правильно настроен, я попробовал как Basic, так и Digest auth -- без везения.

вытягивание (через HTTP) работает нормально.

Я использую hgwebdir для обслуживания моего РЕПО.

что еще я должен проверить?

Я нашел это:http://code.google.com/p/support/issues/detail?id=2580 В моем случае это не случайно, это происходит каждый раз.

соответствующая часть моего vhost conf:

  WSGIScriptAlias  /  /home/(...)/hgwebdir.wsgi

  <Directory /home/(...)>
    AuthType Basic
    AuthUserFile /(...)/basic-password
    AuthName (...)
    Require valid-user

    Order deny,allow
    Allow from all
  </Directory>

$ hg -v
Mercurial Distributed SCM (version 1.0.2)

как ни странно, HG outgoing работает нормально:

$ hg outgoing
comparing with https://hg.domain.com/X_repo
http authorization required
realm: ...
user: ...
password: 
searching for changes
changeset:   64:...
tag:         tip
user:        ...
date:        ...
summary:     ...

7 ответов


Если кто-то хочет заставить его работать на локальной машине, то добавление этого на сервер REPO/.hg/hgrc сделать:

[web]
allow_push = *
push_ssl = false

как описано в этот сайт.


проблема оказалась разрешениями repo dir. chown www-data ее решили...


для тех, кто с TortoiseHg толкает на веб-сервер (другой несанкционированный пользователь на другом ПК):

In TortoiseHg:File - Settings - (Either globally or just for the current repository - tabs) тут Server настройки. Веб-Сервер

Push Requires SSL - No
Allow Push - *

это делает то же самое через UI как lukmdoответ выше (редактирование файла hgrc).


это is странно, что ты можешь бегать hg outgoing а не hg push поскольку я понимаю, что они оба аутентифицируются одинаково.

к сожалению, я не эксперт hgweb. Пожалуйста, напишите на список Mercurial (mercurial@mercurial-scm.org) и / или выйти в интернет в IRC (#mercurial on irc.freenode.net). Там будет гораздо больше людей, которые помогут вам. IRC особенно хорош, так как эти вещи намного проще отлаживать в интерактивном режиме.


на всякий случай это может помочь кому - то-я столкнулся с этой ошибкой по неизвестным причинам, все разрешения были в порядке, и просто перезапуск apache решил ее.


Это произошло со мной после изменения моего пароля bitbucket, затем, хотя я использовал SourceTree для управления моим паролем, и я изменил его глобально, у одного РЕПО, однако, был мой старый пароль жестко закодирован в REPO/.hg/hgrc изменил строку, и все работает снова


моя проблема была немного другая. Изменение пароля вызвало его... И у меня был repo/.hgrc и repo/.hg/hgrc. Не знаю почему, но они противоречили друг другу.

для записи самый чистый способ, который я нашел, - это сохранить файл глобальной конфигурации (в Windows C:\Users\<user>\mercurial.ini или Linux /home/<user>/.hgrc) со всей конфигурацией, которая применяется ко всем репозиториям (профилям, плагинам/расширениями, репозиториям и т. д.), а затем для каждого репозитория просто используйте что-то вроде:

[paths]  
default = https://path/to/remote/repo

# any other repo-specific config

почему у меня был другой РЕПО-специфичный конфигурационный файл mercurial, я не знаю - теперь все очищено и работает хорошо.