Git est un système de gestion de versions. Voir sa [http://fr.wikipedia.org/wiki/Git_(logiciel) page wikipédia]

Note : j'ai testé tout ça sur Gutsy... merci aux Etchers de confirmer que ça passe aussi sur Debian Etch, qui n'est qu'en git 1.4... Sinon il faudra abandonner (oohh...) ou bien utiliser le git de backports.org (uuhh...)

Suivre la config d'une machine avec git

On veut pouvoir documenter les modifications faites dans /etc et dans /usr/local.

Installation

  1. On installe git :

    • # aptitude install git-core
  2. On créée un dépôt général pour toute la machine :
    • # cd /
      # git init
  3. Pour éviter d'avoir des "saletés" directement à la racine (/), on déplace le dépôt autre part :

    • # mkdir /var/lib/git
      # mv /.git /var/lib/git/root
      # ln -s /var/lib/git/root /.git
      # chmod u=rwx,go= /var/lib/git/root
  4. On veut suivre /etc et /usr/local seulement, pour cela on modifie les exclusions au niveau du dépôt, dans le fichier /var/lib/git/root/info/exclude :

    • #
      # Le fichier /var/lib/git/root/info/exclude 
      #
      /*
      !/etc
      /etc/mtab
      /etc/adjtime
      !/usr
      /usr/*
      !/usr/local
      *.dpkg-old
      *.dpkg-new
      *~
      .*.swp
  5. On fait les premiers ajouts et le premier commit :

    • # cd / ; git add etc usr/local
      # git commit -m "mise en route du suivi : /etc et /usr/local" --author "moi <email@auf.org>"

Utilisation

Après chaque modification d'un fichier, enregistrer les modifications :

Si on veut suivre un nouveau fichier, ou ne committer les modifications que de ce fichier :

et pour un répertoire (modifier exclude si c'est en dehors de /etc ou /usr/local):

Pour voir les modifications, plusieurs techniques en ligne de commande :

Quelques scripts d'automatisation (wrapper)

confcommit

attachment:confcommit

Permet une utilisation plus simple via sudo :

confcommit-status

attachment:confcommit-status

A lancer via un cron au moins quotidien, il donne la liste des modifications non encore enregistrées : fichiers modifiés, fichiers supprimés, nouveaux fichiers.

Améliorations à prévoir