Taille: 2500
Commentaire:
|
Taille: 2858
Commentaire: confcommit, une tentative de script bebete...
|
Texte supprimé. | Texte ajouté. |
Ligne 38: | Ligne 38: |
/etc/mtab /etc/adjtime |
|
Ligne 48: | Ligne 50: |
# git commit -m "mise en route du suivi : /etc et /usr/local" | # git commit -m "mise en route du suivi : /etc et /usr/local" --author "moi <email@auf.org>" |
Ligne 74: | Ligne 76: |
== 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 |
|
Ligne 76: | Ligne 87: |
. faire un ou des wrappers pour une utilisation plus simple via sudo : un truc genre "sudo confcommit" qui lance des git add puis git commit -a --author $SUDO_USER) |
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
On installe git :
# aptitude install git-core
- On créée un dépôt général pour toute la machine :
# cd / # git init
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
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 # / !/usr/local !/etc /etc/mtab /etc/adjtime *.dpkg-old *.dpkg-new *~ .*.swp
On fait les premiers ajouts et le premier commit :
# cd /etc ; git add . # cd /usr/local ; git add . # 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 /repertoire ; git add .
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)