2012-06-05 19 views
5

Cuando intento de clonar un repositorio Mercurial https autenticado (por ejemplo, de horno), me pide mi nombre de usuarioConfigurar Hg a no pide nombre de usuario y contraseña en la línea de comandos

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

Queremos invoque el comando hg clone desde nuestra aplicación GUI con cualquier URL proporcionada por el usuario y solicite al usuario para el nombre de usuario y contraseña, si son necesarios.

¿Cómo puedo configurar Mercurial para invocar un script arbitrario que devuelve el nombre de usuario/contraseña, similar a los scripts cuyas rutas están definidas en las variables de entorno GIT_ASKPASS o SSH_ASKPASS para Git?

Respuesta

8

Puede configurar sus credenciales en su gran facilidad de uso hgrc (mercurial.ini en el directorio de perfil de usuario en Windows):

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

Posteriormente, las solicitudes de este servidor va a utilizar en silencio las credenciales proporcionadas en el hgrc archivo.

Consulte el docs on hgrc para obtener más información.


Actualización: Después de estudiar el TortoiseHg fuentes un poco (el código en cuestión siendo los SyncWidget.inclicked y SyncWidget.pullclicked métodos en sync.py), he descubierto que TortoiseHg, que hace exactamente lo que está tratando de lograr, al parecer, primero prueba la URL para la solicitud de autenticación y, si se ha proporcionado, le pide al usuario el nombre de usuario y la contraseña, para reconstruir una URL completa (con credenciales) y suministrarla al hg pull.

Supongo que puedes hacer lo mismo.

+0

¿Qué es 'foo' en su muestra? El problema es que antes de ejecutar cualquier comando de clonación, debemos solicitar los detalles de usuario/contraseña para almacenarlos en 'mercurial.ini'. ¿No existe la posibilidad de que Mercurial invoque un script bajo demanda, similar a 'GIT_ASKPASS' o' SSH_ASKPASS' para Git? – Mot

+0

@MikeL .: 'foo'" se usa para agrupar argumentos en entradas de autenticación ", para citar los documentos vinculados. En cuanto a su problema, debo administrarlo. No entiendo completamente su objetivo real. ¿Desea actualizar la pregunta con una descripción más detallada del flujo de trabajo? ¿Cuál es el contenedor GUI que mencionaste? ¿Cuáles son las URL "que el usuario puede ingresar"? – Helgi

+0

Refinado la pregunta. – Mot

5

¿Qué hay de

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

es tal solución no es viable para usted?

+0

No, porque el usuario puede ingresar URL similares a la de la pregunta. – Mot

Cuestiones relacionadas