Modifications entre les versions 1 et 14 (s'étendant sur 13 versions)
Version 1 à la date du 2007-11-07 17:02:48
Taille: 967
Éditeur: ThomasNoël
Commentaire: premier draft, en cours
Version 14 à la date du 2007-11-09 08:19:36
Taille: 2861
Éditeur: ThomasNoël
Commentaire: la logique du exclude n'est pas si evidente (mais c'est documenté, et man fnmatch m'a donné les détails)
Texte supprimé. Texte ajouté.
Ligne 2: Ligne 2:

'''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...)
Ligne 6: Ligne 8:

== Installation ==
Ligne 22: Ligne 26:
# chmod u=rwx /var/lib/git/root # ln -s /var/lib/git/root /.git
# chmod u=rwx,go= /var/lib/git/root
Ligne 25: Ligne 30:
 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/excludes` :  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` :
Ligne 31: Ligne 36:
!/etc
/etc/mtab
/etc/adjtime
!/usr
/usr/*
Ligne 32: Ligne 42:
!/etc *.dpkg-old
*.dpkg-new
*~
.*.swp
Ligne 35: Ligne 48:
 5. On fait les premiers ajouts :  5. On fait les premiers ajouts et le premier ''commit'' :
Ligne 37: Ligne 50:
# cd /
# git add /etc
# git add /usr/local
# cd / ; git add etc usr/local
# git commit -m "mise en route du suivi : /etc et /usr/local" --author "moi <email@auf.org>"
Ligne 41: Ligne 53:

== Utilisation ==

Après '''chaque''' modification d'un fichier, enregistrer les modifications :
  {{{
# git commit -a}}}

Si on veut suivre un nouveau fichier :
  {{{
# git add fichier}}}
ou un nouveau répertoire (modifier `exclude` si c'est en dehors de /etc ou /usr/local):
  {{{
# cd / ; git add un/reper/toire }}}

Pour voir les modifications :
  {{{
# git log -10
# git show ...(le code du commit)...}}}
ou bien installer le logiciel `tig` qui est tout simplement fantastique avec la couleur et tout ça :
  {{{
# aptitude install tig
# tig
}}}

== Petit script de commit automatique (wrapper) ==

Ci-dessous une tentative de script `/usr/local/bin/confcommit` permettant une utilisation plus simple via `sudo` :
 * trouve le nom de l'auteur/committer par les variables d'environnement GIT_ et/ou SUDO_USER
 * `confcommit -a` : effectue un `git commit -a`
 * `confcommit -n` : effectue les `git add .` dans `/etc` et `/usr/local` pour ajouter tous les nouveaux fichiers

Le script : attachment:confcommit

== Améliorations à prévoir ==

 . interfaçage avec apt : voir http://bryan-murdock.blogspot.com/2007/07/put-etc-under-revision-control-with-git.html
 . cron nocture qui balance un courriel d'insulte quand on a pas fait le commit alors qu'il y a des modifs
 . faire un serveur central gitweb (avec les commandes git-ssh-* ou autre pour envoyer vers le dépot ?)

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 :

  • # git commit -a

Si on veut suivre un nouveau fichier :

  • # git add fichier

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

  • # cd / ; git add un/reper/toire 

Pour voir les modifications :

  • # git log -10
    # git show ...(le code du commit)...

ou bien installer le logiciel tig qui est tout simplement fantastique avec la couleur et tout ça :

  • # aptitude install tig
    # tig

Petit script de commit automatique (wrapper)

Ci-dessous une tentative de script /usr/local/bin/confcommit permettant une utilisation plus simple via sudo :

  • trouve le nom de l'auteur/committer par les variables d'environnement GIT_ et/ou SUDO_USER
  • confcommit -a : effectue un git commit -a

  • confcommit -n : effectue les git add . dans /etc et /usr/local pour ajouter tous les nouveaux fichiers

Le script : attachment:confcommit

Améliorations à prévoir

Git/SuiviDeConfiguration (dernière édition le 2013-09-02 03:50:32 par JeanChristopheAndré)