Подтвердить что ты не робот

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:     ...
4b9b3361

Ответ 1

Проблема оказалась репортерной. chown www-data решил...

Ответ 2

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

[web]
allow_push = *
push_ssl = false

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

Ответ 3

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

К сожалению, я не эксперт hgweb. Отправьте по электронной почте Mercurial list ([email protected]) и/или выйдите в IRC (#mercurial on irc.freenode.net). Там будет еще много людей, чтобы помочь вам там. IRC особенно хорош, поскольку эти вещи намного легче отлаживать в интерактивном режиме.

Ответ 4

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

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

Push Requires SSL - No
Allow Push - *

Это делает то же самое через интерфейс пользователя, как lukmdo ответ выше (редактирование файла hgrc).

Ответ 5

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

Ответ 6

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

Ответ 7

Моя проблема была немного иной. Изменение пароля вызвало его... И у меня были 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, специфичный для репо, я не знаю, теперь все очищено и работает красиво.