Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > Utiliser les pre/post commit hooks

Utiliser les pre/post commit hooks

Un hook est un programme appelé lors d’évènements spécifiques lors du processus de commit.

Vérifiez tout d’abord que le paquet subversion-tools soit installé :

  1. apt-get install subversion-tools

Notifier par mail chaque commit

L’utilisation la plus commune est certainement celle du hook de post-commit qui comme son nom l’indique intervient après chaque commit sur le dépot. Son utilisation principale est d’envoyer un email à une personne ou une liste de personnes contenant le diff des fichiers modifiés.

Pour le mettre en place il suffit :

  1. #se rendre dans le répertoire des hooks
  2. cd /var/svn/mon_depot/hooks/
  3. #Activer le hook en question
  4. sudo cp post-commit.tmpl post-commit
  5. #Le rendre executable
  6. sudo chmod +x post-commit

Télécharger

Le contenu du fichier post-commit sera dorénavant exécuté à chaque futur commit. Maintenant voici un exemple du contenu de ce fichier :

  1. #!/bin/sh
  2. # utiliser utf-8 pour gérer les accents dans les logs mais en us pour ne pas avoir de pb avec la date des mails (à adapter selon les locales disponibles sur votre machine)
  3. export LANG="en_US.UTF-8"
  4. # On récupère le nom du dépot qui est la première valeur du contexte
  5. REPOS="$1"
  6. #On récupère le numéro de révision qui est la seconde valeur du contexte
  7. REV="$2"
  8. #On récupère le nom de l'utilisateur qui a commité en utilisant la commande svn svnlook et se basant sur les informations récupérées du contexte
  9. AUTHOR=$(svnlook author --revision $REV $REPOS)
  10. # On envoie le mail
  11. /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" --from "user_autorise@domaine.tld" -s "$AUTHOR |" maliste@domaine.tld

Télécharger

Ici on envoie donc un email à une liste de diffusion "maliste@domaine.tld" (qui pourrait être un utilisateur simple) en utilisant l’email "user_autorise@domaine.tld" (email de l’expéditeur) en ajoutant au début du sujet par défaut le nom de l’auteur du commit suivi d’un pipe (-s "$AUTHOR |").

NB :

Il est nécessaire d’avoir installé le paquet subversion-tools pour avoir le script commit-email.pl

Vous pouvez tester votre hook comme ceci :

  1. #se rendre dans le répertoire des hooks
  2. cd /var/svn/mon_depot/hooks/
  3. # tester le hook sur la revision xx
  4. ./post-commit /var/svn//mon_depot/ xx

Télécharger

  • Auteur :
  • Publié le :
  • Mis à jour : 06/02/11

3 commentaires


Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.