Modifications entre les versions 3 et 15 (s'étendant sur 12 versions)
Version 3 à la date du 2007-11-07 17:33:44
Taille: 1925
Éditeur: ThomasNoël
Commentaire: bon voilà quoi
Version 15 à la date du 2007-11-09 09:20:50
Taille: 3024
Éditeur: ThomasNoël
Commentaire:
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 25: Ligne 27:
# chmod u=rwx /var/lib/git/root # chmod u=rwx,go= /var/lib/git/root
Ligne 33: Ligne 35:
/ /*
!/etc
/etc/mtab
/etc/adjtime
!/usr
/usr/*
Ligne 35: Ligne 42:
!/etc
Ligne 39: Ligne 45:
.*.swp
Ligne 43: Ligne 50:
# cd /etc ; git add .
#
cd /usr/local ; git add .
# git commit -m "mise en route du suivi : /etc et /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 54: Ligne 60:
Si on veut suivre un nouveau fichier : Si on veut suivre un nouveau fichier, ou ne committer les modifications que de ce fichier :
Ligne 56: Ligne 62:
# git add fichier}}}
ou un nouveau répertoire (modifier `exclude` si c'est en dehors de /etc ou /usr/local):
# git add fichier
# git commit
}}}
et pour un répertoire (modifier `exclude` si c'est en dehors de /etc ou /usr/local):
Ligne 59: Ligne 66:
# cd /repertoire ; git add .}}} # cd / ; git add un/reper/toire
# git commit
}}}
Ligne 61: Ligne 69:
Pour voir les modifications : Pour voir les modifications, plusieurs techniques en ligne de commande :
Ligne 63: Ligne 71:
# tig <-- à installer avec aptitude install tig
# git whatchanged
Ligne 64: Ligne 74:
# git show ...(le code du commit)...}}} # git show ...(le code du commit)...
}}}
Ligne 66: Ligne 77:
== Améliorations == == Quelques scripts d'automatisation (wrapper) ==
Ligne 68: Ligne 79:
 . interfaçage avec apt : 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)
=== confcommit ===

attachment:confcommit

Permet 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` pour committer toutes les modifications et suppression de fichiers
 * `confcommit -n` : effectue un `git add etc usr/local` pour ajouter tous les nouveaux fichiers

=== 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 ==

 . interfaçage avec apt : voir http://bryan-murdock.blogspot.com/2007/07/put-etc-under-revision-control-with-git.html
 . faire un serveur central gitweb (avec les commandes git-ssh-* ou autres, 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, ou ne committer les modifications que de ce fichier :

  • # git add fichier
    # git commit

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

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

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

  • # tig    <-- à installer avec aptitude install tig
    # git whatchanged
    # git log -10
    # git show ...(le code du commit)...

Quelques scripts d'automatisation (wrapper)

confcommit

attachment:confcommit

Permet 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 pour committer toutes les modifications et suppression de fichiers

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

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

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