2010-06-25 7 views
10

En casa, esto funciona a la perfección. Estoy en otro equipo ahora (usando cygwin) y hg push no le pedirá un nombre de usuario/contraseña:¿Cómo puedo obtener hg para solicitar mi nombre de usuario/contraseña de autenticación HTTP en cygwin/windows?

[email protected] /cygdrive/d/repos/upthescala/viewprotect 
$ hg push https://viewprotect.googlecode.com/hg/ 
pushing to https://viewprotect.googlecode.com/hg/ 
searching for changes 
abort: http authorization required 

Aquí son el contenido de mis ~/.hgrc:

[http_proxy] 
host=someproxy:8080 

[ui] 
username = My Name <myemail> 

Gracias de avanzar por cualquier consejo!

Nota: este parece ser un problema de cygwin. Cuando intento del mensaje de Windows (cmd.exe), funciona como se esperaba:

D:\repos\upthescala\viewprotect>hg push https://viewprotect.googlecode.com/hg/ 
pushing to https://viewprotect.googlecode.com/hg/ 
searching for changes 
http authorization required 
realm: Google Code Mercurial Repository 
user: myemailaddress 
password: ********* 

remote: Success. 

- LES

Respuesta

6

Ya que es HTTP siempre se puede poner el nombre de usuario y la contraseña correcta en la URL. Eso funciona en cualquier sitio web usando http auth y en cualquier navegador.

hg push https://myemailaddress:*********@viewprotect.googlecode.com/hg/ 

Alternativamente, las nuevas versiones Mercurial tienen un auth section que puede utilizar.

Por cierto, esa es una contraseña terrible. Deberías pensar en algo mejor que ocho estrellas.

+0

por supuesto, bloqueé la contraseña real! (Es la loca contraseña críptica que google genera para ti para el repositorio de código fuente - no soy tan densa :) – les2

+8

lol @ "esa es una contraseña terrible. Debes encontrar algo mejor que ocho estrellas". – HighCommander4

+1

Gracias @ HighCommander4 Sabía que alguien lo conseguiría. :) –

8

Esto podría deberse al uso de una versión de Mercurial vinculada al subsistema de la consola de Windows. El binario distribuido con Tortuga cae en esta categoría. Si este es el caso, mercurial espera usar el subsistema de la consola para solicitar credenciales, pero no lo encuentra cuando se ejecuta desde el shell Cygwin. En mi caso, la instalación y el uso de la versión Cygwin de mercurial solucionó el problema, además de corregir la salida de color. Para verificar qué versión está usando, ejecute 'which hg' (pero probablemente ya lo sabía).

+0

Tengo el mismo problema, pero utilizo MSYS, no Cygwin. Alguna sugerencia para mi? – HighCommander4

+0

¿Alguien puede darle una medalla a este tipo? –

8

Para añadir al comentario de Andrew:

de instalar y utilizar la versión de Cygwin de mercurial solucionado el problema,

Esto también solucionó el problema para mí, pero causó otro problema que me llevó algún tiempo para averiguarlo. Al usar la versión de Cygwin de hg, todos los archivos que se habían clonado en TortoiseHG se mostraron como modificados cuando ejecuté hg status, pero no se mostraron diferencias para ninguno de ellos cuando ejecuté hg diff.

El problema era que los permisos no coincidían. Al ejecutar chmod 644 .* -R en cada repos, se resolvió este problema.

Cuestiones relacionadas