2012-06-05 2 views
5

Quando cerco di clonare un repository Mercurial https autenticati (ad esempio da forno), mi chiede il mio nome utenteConfigurare Hg di non chiedere nome utente e password su riga di comando

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

Vogliamo invocare il comando hg clone dalla nostra applicazione GUI con qualsiasi URL fornito dall'utente e chiedere all'utente su richiesta per il nome utente e la password, se richiesti.

Come posso configurare Mercurial per richiamare uno script arbitrario che restituisce il nome utente/password, simile agli script i cui percorsi sono definiti nelle variabili di ambiente GIT_ASKPASS o SSH_ASKPASS per Git?

risposta

8

È possibile configurare le proprie credenziali nella vostra user-wide hgrc (mercurial.ini nella directory del profilo utente, su Windows):

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

In seguito, le richieste di questo server silenziosamente utilizzare le credenziali fornite nella hgrc file.

Vedere docs on hgrc per ulteriori informazioni.


Aggiornamento: Dopo aver studiato il TortoiseHg fonti un po '(il codice in questione essendo i SyncWidget.inclicked e SyncWidget.pullclicked metodi in sync.py), ho scoperto che TortoiseHg, che fa esattamente ciò che si sta cercando di raggiungere, apparentemente prima tenta l'URL per la richiesta di autenticazione e, se è stato dato, chiede all'utente il login e la password, per ricostruire un URL completo (con credenziali) e fornirlo a hg pull.

Immagino che tu possa fare lo stesso.

+0

Che cos'è 'foo' nel campione? Il problema è che prima di eseguire qualsiasi comando clone, dovremmo richiedere i dettagli utente/password per memorizzarli nel 'mercurial.ini'. Non c'è la possibilità di permettere a Mercurial di chiamare uno script su richiesta - simile a 'GIT_ASKPASS' o' SSH_ASKPASS' per Git? – Mot

+0

@MikeL .: 'pippo'" viene utilizzato per raggruppare gli argomenti nelle voci di autenticazione ", per citare i documenti collegati. Per quanto riguarda il tuo problema, devo ammettere che non capisco appieno il tuo obiettivo. Cura di aggiornare la domanda con una descrizione più dettagliata del flusso di lavoro? Qual è il wrapper della GUI che hai menzionato? Quali sono gli URL "che l'utente potrebbe inserire"? – Helgi

+0

Rifinita la domanda. – Mot

5

Che dire

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

è tale soluzione non praticabile per te?

+0

No, perché l'utente potrebbe inserire URL simili a quello nella domanda. – Mot