Question

Je dois écrire un script shell à exécuter quotidiennement pour sauvegarder un répertoire à l'aide de mercurial. La plupart des cas d'utilisation sont terminés, sauf que je peux trouver un moyen de créer une connexion automatisée pendant l'exécution du 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

l'invite de connexion s'affiche après l'envoi de la commande hg push.

Était-ce utile?

La solution

Mercurial vous permet de saisir le nom d'utilisateur et le mot de passe dans l'URL du référentiel:

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

Si vous ne souhaitez pas mettre l'URL sur la ligne de commande, vous pouvez modifier le hgrc dans le référentiel local et entrez le nom d'utilisateur et le mot de passe dans l'URL default-push :

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

Cela signifie que tout hg push utilisera le nom d'utilisateur spécifié dans le fichier hgrc .

Autres conseils

Je conviens que vous devez configurer votre script de sauvegarde pour les connexions non interactives. Une solution consiste à utiliser des clés SSH et une solution plus simple consiste à inclure le mot de passe directement dans l’URL.

Mercurial 1.3 facilite l’inclusion de mots de passe HTTP dans vos fichiers de configuration. J'ai maintenant un

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

section dans mon fichier de configuration. Cela signifie que vous pouvez éviter de stocker vos mots de passe dans plusieurs fichiers et vous concentrer uniquement sur la sécurisation d'un fichier.

En fait, j'utilise une autre nouvelle fonctionnalité afin d'éviter de mettre le mot de passe dans ~ / .hgrc , car je pourrais vouloir montrer ce fichier à d'autres. Au lieu de cela j'ai

%include .hgauth

dans ~ / .hgrc et ~ / .hgauth a la section [auth] ci-dessus et est lisible par moi seul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top