it-swarm.com.de

Mercurial Push, Abbruch: Autorisierung fehlgeschlagen

Ich habe Probleme beim Umstieg auf das Mercurial-Repository:

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

Dieselbe URL (mit den gleichen Anmeldeinformationen) ist über den Webbrowser zugänglich. Ich habe es auch ausprobiert, ohne usr + pass in die URL einzubetten.

HTTPS ist korrekt konfiguriert, ich habe sowohl Basic als auch Digest auth ausprobiert - ohne Glück.

Das Ziehen (über HTTP) funktioniert einwandfrei.

Ich verwende hgwebdir, um mein Repo zu liefern.

Was sollte ich noch prüfen?

Ich habe folgendes gefunden: http://code.google.com/p/support/issues/detail?id=2580 .__ In meinem Fall ist das nicht zufällig, es passiert jedes Mal.

Relevanter Teil meines 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)

Seltsamerweise hg abgehend funktioniert ok:

$ 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

Problem erwies sich als Repo-Verzeichnis Berechtigungen. chown www-data hat es gelöst ...

20
Piotr Byzia

Wenn jemand möchte, dass er auf dem lokalen Computer ausgeführt wird, erledigt Das Hinzufügen zu Server REPO/.hg/hgrc die Arbeit:

[web]
allow_Push = *
Push_ssl = false

wie auf hier beschrieben .

52
lukmdo

Für diejenigen, die TortoiseHg auf einen Webserver (einen anderen nicht autorisierten Benutzer auf einem anderen PC) verschieben:

In TortoiseHg: File - Settings - (Either globally or just for the current repository - tabs) dann die Server-Einstellungen . Webserver

Push Requires SSL - No
Allow Push - *

Dies geschieht über die Benutzeroberfläche genauso wie die Antwort von lukmdo (Bearbeitung der hgrc-Datei).

3
lko

Ist seltsam, dass Sie hg outgoing ausführen können, aber nicht hg Push, da meines Erachtens beide sich auf dieselbe Weise authentifizieren.

Ich bin leider kein hgweb-Experte. Bitte mailen Sie an die Mercurial-Liste ([email protected]) und/oder gehen Sie online in IRC (#Mercurial auf irc.freenode.net). Es wird viel mehr Leute geben, die dir dort helfen. IRC ist besonders gut, da diese Dinge viel einfacher interaktiv zu debuggen sind.

3
Martin Geisler

Nur für den Fall, dass es jemandem helfen könnte - ich habe diesen Fehler aus unbekannten Gründen festgestellt, alle Berechtigungen waren in Ordnung, und durch den Neustart von Apache wurde der Fehler behoben.

1
Kjetil Limkjær

Dies geschah bei mir, nachdem ich mein Bitbucket-Passwort geändert hatte. Obwohl ich SourceTree zum Verwalten meines Passworts verwendet habe, habe ich es global geändert. Ein Repo hatte jedoch mein altes Passwort in REPO/.hg/hgrc fest codiert und die Zeile geändert, und alles funktioniert wieder

0
Moak

Mein Problem war etwas anders. Passwortänderung hat es ausgelöst ... Und ich hatte einen repo/.hgrc und einen repo/.hg/hgrc. Nicht sicher warum, aber diese waren widersprüchlich. 

Die sauberste Methode, die ich gefunden habe, ist für mich die Aufbewahrung einer globalen Konfigurationsdatei (unter Windows C:\Users\<user>\Mercurial.ini oder Linux /home/<user>/.hgrc) mit der gesamten Konfiguration, die für alle Repositorys (Profile, Plugins/Erweiterungen, Repos usw.) gilt, und dann pro Repo, verwenden Sie einfach etwas wie:

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

# any other repo-specific config

Warum ich eine andere repo-spezifische Mercurial-Konfigurationsdatei hatte, weiß ich nicht - jetzt ist alles aufgeräumt und funktioniert gut.

0
nicorellius