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: ...
Problem erwies sich als Repo-Verzeichnis Berechtigungen. chown www-data
hat es gelöst ...
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 .
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).
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.
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.
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
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.