Tengo que escribir un script que automatice la extracción de un repositorio mercurial. ¿Hay alguna forma de que pueda realizar un hg pull -u
que incluya pasar el nombre de usuario y la contraseña solicitados en el mismo comando? Sé que hay un método interactivo que es el comportamiento predeterminado, y no quiero guardar el nombre de usuario y la contraseña en hgrc o en otro lugar, ya que será utilizado por varios usuarios, por lo que hay una forma de pasar el nombre de usuario y la contraseña a través del ¿línea de comando? Intenté usar proc_open
en PHP, pero eso no funcionaba tan bien como se hacía eco en STDIN.Mercurial (HG) parámetros de extracción: nombre de usuario y contraseña
Respuesta
he encontrado dos soluciones:
1.Proporcionar claramente la URL, incluyendo credenciales completas:
hg pull -u https://user:[email protected]/path
2. Proporcionar las credenciales con --config, utilizando * como un prefijo (de la respuesta de Victor):
hg pull -u --config auth.x.prefix=* --config auth.x.username=user --config auth.x.password=pass
Bien, ambos funcionan :) – radtek
Usted puede ser capaz de utilizar el interruptor --config
de hacerlo de esta manera:
hg --config auth.username=USERNAME --config auth.password=PASSWORD pull -u
Yo personalmente nunca he hecho esto, pero espero que esto ayuda.
No no funciona, haciendo caso omiso de la clave [auth] no válida 'nombre de usuario' ignorando clave [auth] no válida 'contraseña' – radtek
Pasando la contraseña en la línea de comando es inseguro ya que otros usuarios pueden verlo usando ps
y similar. Lo que debe hacer es o bien:
comunicarse con
hg
en las tuberías que vuelva deproc_open
. Tendrá que analizar detenidamente la salida de Mercurial y darle el nombre de usuario y la contraseña en stdin. Ejecutar Mercurial como:hg --config ui.interactive=yes
para asegurarse de que va a hablar con usted - de lo contrario me temo que detecta que no hay TTY y la costumbre le pedirá a todos.
Escriba un archivo de configuración temporal con un
[auth]
section. Se parece a esto:[auth] x.prefix = output of "hg paths default" x.username = USERNAME x.password = PASSWORD
(El
x
no es importante, que puede ser cualquier cosa.) Asegúrese de que el archivo sólo es legible por el usuario que se está ejecutando el script como. Luego configure la variable de entornoHGRCPATH
para que apunte al archivo y ejecute Mercurial. ¡Borre el archivo cuando haya terminado!
Hay una libhg PHP library para la command server, pero no veo nada acerca de los nombres de usuario o contraseñas, para tirar o clon de esa biblioteca. La biblioteca está en progreso, pero cuando sea más madura sugiero usarla. Pero por ahora los enfoques anteriores deberían ayudarte.
La solución 2 es específica de un repositorio. Do
[auth]
x.prefix = *
x.username = USERNAME
x.password = PASSWORD
para que se aplique a todos los repositorios. Además, si coloca esto en "~/.hgrc" y otorga ese permiso de 600, no tiene que hacer el truco HGRCPATH. Solo déjalo ahí.
Eso es trabajaron:
hg --config auth.rc.prefix=http://host/ --config auth.rc.username=user --config auth.rc.password=password pull -u http://host/full/path/to/repo
- 1. Configurar Hg a no pide nombre de usuario y contraseña en la línea de comandos
- 2. nombre de usuario y contraseña en sqlite3
- 3. ¿Suplantar con nombre de usuario y contraseña?
- 4. TeamCity Nombre de usuario/contraseña
- 5. Obtenga las fechas de extracción y actualización en Mercurial
- 6. Complemento "Solicitudes de extracción" para mercurial
- 7. Mercurial: abortar: no suministra nombre de usuario (ver "hg ayuda config")
- 8. Mercurial predeterminado de combinación hg
- 9. Presionando con mercurial: abortar: no se ha proporcionado ningún nombre de usuario (ver "hg help config")
- 10. Mercurial HG colisión caso plegado?
- 11. Mercurial hg serve multiple repositories
- 12. Seguridad de nombre de usuario y contraseña de ASMX
- 13. Mercurial "hg status" y paths relativos
- 14. Cómo revertir un mercurial hg pull?
- 15. Android: ¿Almacenamiento de nombre de usuario y contraseña?
- 16. ¿Qué archivos se cambiarán? ¿Se agregarán cuando hago una extracción de hg y una actualización de hg?
- 17. ¿Cómo puedo obtener hg para solicitar mi nombre de usuario/contraseña de autenticación HTTP en cygwin/windows?
- 18. Mercurial: aplicar "hg pull -u" antes de "hg commit"
- 19. gvfs-mount especificar nombre de usuario contraseña
- 20. Pasando nombre de usuario y contraseña a svcutil.exe?
- 21. Enviar nombre de usuario y contraseña al servicio web
- 22. Servidor VisualSVN quiere un nombre de usuario y contraseña
- 23. Autenticación Java LDAP con nombre de usuario y contraseña
- 24. WCF TransportCredentialOnly no enviar nombre de usuario y contraseña
- 25. Salida diferente, mismo nombre de usuario y contraseña
- 26. Comprobando el nombre de usuario y la contraseña en Android
- 27. ¿Utiliza cURL con nombre de usuario y contraseña?
- 28. Curl para solicitar un nombre de usuario y contraseña
- 29. Usando hg revertir en Mercurial
¿Por qué no utilizar las teclas SSH? –