2012-06-05 9 views
5

Wenn ich versuche, eine https-authentifizierten Mercurial-Repository zu klonen (zB aus dem Ofen), ist es mirConfigure Hg zu bitten, nicht für den Benutzernamen und das Passwort auf der Kommandozeile

für meinen Benutzernamen fragt
C:\temp\test>hg clone https://<my-login-name>.kilnhg.com/Code/Repositories/Group/test 
http authorization required 
realm: kiln 
user: 

Wir wollen Rufen Sie den Befehl hg clone von unserer GUI-Anwendung mit einer vom Benutzer bereitgestellten URL auf und bitten Sie den Benutzer auf Anforderung um den Benutzernamen und das Kennwort, falls erforderlich.

Wie kann ich Mercurial so konfigurieren, dass ein beliebiges Skript aufgerufen wird, das den Benutzernamen/das Kennwort zurückgibt, ähnlich wie Skripts, deren Pfade in den Umgebungsvariablen GIT_ASKPASS oder SSH_ASKPASS für Git definiert sind?

Antwort

8

Sie können Ihre Anmeldeinformationen in Ihrem Benutzerweiten hgrc (mercurial.ini im Benutzerprofil-Verzeichnis unter Windows) konfigurieren Datei.

Weitere Informationen finden Sie unter docs on hgrc.


Update: Nach dem TortoiseHg Studium ein wenig Quellen (den Code in Frage zu sein, die SyncWidget.inclicked und SyncWidget.pullclicked Methoden in sync.py), habe ich herausgefunden, dass TortoiseHg, die genau das tut, was Sie versuchen zu erreichen, scheinbar zunächst versucht die URL für die Auth-Anfrage, und, wenn es gegeben wurde, fragt den Benutzer nach dem Login und Passwort, um eine vollständige URL (mit Anmeldeinformationen) neu zu erstellen und an hg pull zu liefern.

Ich denke, Sie können das gleiche tun.

+0

Was ist 'foo' in Ihrer Probe? Das Problem ist, dass wir vor dem Ausführen eines clone-Befehls die Benutzer/Passwort-Details anfordern sollten, um sie in der 'mercurial.ini' zu speichern. Gibt es nicht die Möglichkeit, Mercurial bei Bedarf ein Skript aufrufen zu lassen - ähnlich wie 'GIT_ASKPASS' oder' SSH_ASKPASS' für Git? – Mot

+0

@MikeL .: 'foo'" wird verwendet, um Argumente in Authentifizierungseinträge zu gruppieren ", um die verknüpften Dokumente zu zitieren. In Bezug auf Ihr Problem, ich muss Admin Ich verstehe Ihr Ziel nicht vollständig. Möchten Sie die Frage mit einer detaillierteren Beschreibung des Workflows aktualisieren? Was ist der GUI-Wrapper, den du erwähnt hast? Wie lauten die URLs, die der Nutzer eingeben kann? – Helgi

+0

Die Frage verfeinert. – Mot

5

Was

über
hg clone https://user:[email protected]:port 

Ist eine solche Lösung für Sie nicht praktikabel?

[auth] 
foo.prefix = example.com/path 
foo.username = user 
foo.password = password 

, Danach werden die Anfragen für diesen Server still, die in der hgrc angegebenen Anmeldeinformationen verwenden:

+0

Nein, weil der Benutzer URLs eingeben könnte, die denen in der Frage ähnlich sind. – Mot

Verwandte Themen