Pregunta

Necesito escribir un script de shell para que se programe para ejecutarse diariamente para hacer una copia de seguridad de un directorio usando mercurial. He realizado la mayoría de los casos de uso, excepto que puedo encontrar una manera de iniciar sesión automáticamente mientras se ejecuta el script.

for REPOSITORY in $@ 
do
    cd $REPOSITORY

    # commit the changes
    hg commit -A -m "Commit changes `date`"

    # push the changes to the remote repository
    if hg push 
    then
        logger hg push success
    else
        logger hg push failure
    fi
done

la solicitud de inicio de sesión se muestra después de emitir el comando hg push.

¿Fue útil?

Solución

Mercurial le permite poner el nombre de usuario y la contraseña en la URL del repositorio:

hg push http://username:password@hg.myco.com/repo

Si no desea poner la URL en la línea de comando, puede editar el hgrc para el repositorio local y coloque el nombre de usuario y la contraseña en la URL default-push :

default-push = http://username:password@hg.myco.com/repo

Esto significa que cualquier hg push usará el nombre de usuario especificado en el archivo hgrc .

Otros consejos

Acepto que debe configurar su script de respaldo para inicios de sesión no interactivos. Una forma es usar claves SSH y una solución más simple es incluir la contraseña directamente en la URL.

Mercurial 1.3 hace que sea mucho más fácil incluir contraseñas HTTP en sus archivos de configuración. Ahora tengo un

[auth]
bb.prefix = https://bitbucket.org/mg/
bb.username = mg
bb.password = pw

en mi archivo de configuración. Esto significa que puede evitar almacenar sus contraseñas en varios archivos y solo concentrarse en asegurar un archivo.

De hecho, estoy usando otra función nueva para evitar poner la contraseña en ~ / .hgrc , ya que es posible que desee mostrar ese archivo a otros. En cambio tengo

%include .hgauth

en ~ / .hgrc y ~ / .hgauth tiene la sección [auth] anterior y solo yo puedo leerla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top