web-dev-qa-db-fra.com

Mercurial Push, abort: échec de l'autorisation

J'ai des problèmes pour envoyer dans le dépôt Mercurial:

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

La même URL (avec les mêmes informations d'identification) est accessible via le navigateur Web. En outre, je l'ai essayé sans incorporer usr + pass dans l'URL.

HTTPS est correctement configuré, j'ai essayé à la fois l'authentification de base et l'authentification Digest - sans aucune chance.

Tirer (via HTTP) fonctionne bien.

J'utilise hgwebdir pour servir ma pension.

Que dois-je vérifier?

J'ai trouvé ceci: http://code.google.com/p/support/issues/detail?id=2580 Dans mon cas, ce n'est pas aléatoire, cela se produit à chaque fois.

Partie pertinente de ma 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)

Curieusement, hg sortant fonctionne bien:

$ 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:     ...
45
Piotr Byzia

Problème s'est avéré être des autorisations de repo dir. chown www-data l'a résolu ...

20
Piotr Byzia

Si quelqu'un veut le faire fonctionner sur une machine locale, alors l'ajout de ceci au serveur REPO/.hg/hgrc fera le travail:

[web]
allow_Push = *
Push_ssl = false

comme décrit sur ce site .

52
lukmdo

Pour ceux avec TortoiseHg poussant sur un serveur Web (un autre utilisateur non autorisé sur un autre PC):

Dans TortoiseHg: File - Settings - (Either globally or just for the current repository - tabs) puis les Server settings . Web Server

Push Requires SSL - No
Allow Push - *

Cela fait la même chose dans l'interface utilisateur que la réponse de lukmdo ci-dessus (édition du fichier hgrc).

3
lko

C’est est étrange que vous puissiez exécuter hg outgoing mais pas hg Push car je crois comprendre qu’ils s’authentifient tous les deux de la même manière.

Malheureusement, je ne suis pas un expert en web. Envoyez un courrier à la liste Mercurial ([email protected]) et/ou connectez-vous en ligne dans IRC - (#Mercurial sur irc.freenode.net). Il y aura beaucoup plus de personnes pour vous aider. IRC est particulièrement utile, car ces éléments sont beaucoup plus faciles à déboguer de manière interactive.

3
Martin Geisler

Juste au cas où cela pourrait aider quelqu'un - j'ai rencontré cette erreur pour des raisons inconnues, toutes les autorisations étaient OK, et le simple redémarrage d'Apache l'a résolu.

1
Kjetil Limkjær

Cela m'est arrivé après avoir changé mon mot de passe bitbucket, puis bien que j'aie utilisé SourceTree pour gérer mon mot de passe et que je l'ai changé globalement, un référentiel avait cependant mon ancien mot de passe codé en dur dans REPO/.hg/hgrc qui a changé la ligne et tout fonctionne à nouveau

0
Moak

Mon problème était un peu différent. Le changement de mot de passe l'a déclenché ... Et j'avais un repo/.hgrc et un repo/.hg/hgrc. Je ne sais pas pourquoi, mais ils étaient en conflit. 

Pour mémoire, le moyen le plus propre que j’ai trouvé est de conserver un fichier de configuration global (sous Windows C:\Users\<user>\Mercurial.ini ou Linux /home/<user>/.hgrc) avec toute la configuration qui s’applique à tous les référentiels (profils, plugins/extensions, pensions, etc.), puis respectée. repo, utilisez juste quelque chose comme:

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

# any other repo-specific config

Pourquoi j’avais un autre fichier de configuration Mercurial spécifique au référentiel, je ne sais pas - maintenant tout est nettoyé et fonctionne correctement.

0
nicorellius