• [^] # Re: Versionnage de fichier de conf privé possible ?

    Posté par . En réponse à la dépêche Mercurial 2.1 : Les phases. Évalué à 1.

    Je vais décrire la tambouille que j'utilise pour le versionnage des fichiers locaux. Certains points ont déjà été traités par d'autres commentateurs, désolé pour les doublons.

    Dans le dépôt central, les fichiers de configuration sont nommés différemment, par exemple tralala.conf.dist ou config-dist.php. Dans certains cas, il vaut mieux garder l'extension du fichier au cas où il contiendrait des infos sensibles.

    Dans les dépôts de travail, ces fichiers sont copiés en tralalaconf ou config.php. Ils sont alors versionnés dans une branche locale :

    hg branch modifslocales
    # ... crée les fichiers de conf
    hg addremove
    hg ci -m "config locale"
    
    

    Ensuite, si des modifs sont effectuées sur le dépôt central, je rebase ma branche locale sur le "tip":

    hg pull -u
    hg rebase -d tip # d'autres syntaxes sont possibles
    
    

    Le cas le plus complexe est quand j'ai modifié une de ces instances locales, mais que je veux l'enregistrer dans le dépôt central. Autrement dit, j'ai fait une modif dans une branche, mais je veux la commiter dans la branche "default". Dans ce cas, j'utilise l'extension "shelve" :

    hg shelve -a # met en réserve le diff et rétablit les fichiers d'origine
    hg up default # passe dans la branche centrale
    hg unshelve # applique le diff mis de côté
    hg ci -m "modif globale" # commite
    hg push # propage
    hg up modifslocales # retourne dans la branche locale
    hg rebase -d tip # synchronise la branche locale avec le dernier changement
    
    

    Si quelqu'un a une solution plus simple, avec git ou hg, cela m'intéresse.