©
. Document créé le 10 juillet 2012 , mis à jour le 10 juillet 2012.La démocratie est le pire des régimes, à l'exception de tous les autres. Michel Audiard
Accueil du site > Astuces > SVN > Comment obtenir les notifications par mail (hook)
Lors d’un commit svn, il peut être intéressant d’informer l’équipe du projet en cours de développement via la messagerie électronique.
La commande svn permet de déclencher des actions avant et après le traitement demandé. C’est le cas pour les actions :
En tout, 9 actions permises. Pour en savoir plus sur ces actions svn, vous pouvez consulter ce billet en français sur clever-age.com
Classiquement :
cd /usr/ports/mail/svnmailer/
make clean
make
make install
La première chose à faire est de créer le fichier de configuration. Google ne sera pas forcément votre ami sur ce point. Les fichiers de configuration diffèrent d’une version de svnmailer à une autre.
Heureusement, le port de svnmailer est bien documenté. Tout (ou presque) se trouve dans /usr/local/share/doc/svnmailer et surtout /usr/local/share/doc/svnmailer/sample.
Voici un exemple de fichier de configuration pour svn-mailer :
[general]
# Use the GNU diff tool instead of the internal differ
# (note the line continuation)
diff_command = /usr/bin/diff -up -L %(label_from)s -L %(label_to)s
%(from)s %(to)s
mail_command = /usr/sbin/sendmail
[defaults]
from_addr = svn@example.org
to_addr = dev-team@example.org
# Subject specifications different from the hardcoded default
commit_subject_template = %(prefix)s r%(revision)s %(part)s - %(files)s
propchange_subject_template = %(prefix)s r%(revision)s %(property)s
changed - %(files)s
lock_subject_template = %(prefix)s locked - %(files)s
unlock_subject_template = %(prefix)s unlocked - %(files)s
commit_subject_prefix = [svn]
propchange_subject_prefix = [svn]
lock_subject_prefix = [svn]
unlock_subject_prefix = [svn]
# subjects longer than the following will be just truncated:
max_subject_length = 511
# remove =3D kind of characters in email
mail_transfer_encoding = 8bit
Un exemple minimaliste, mais qui conviendra aux petites équipes. Les seules choses à modifier ici sont les valeurs des paramètres :
Placez ensuite le contenu de ce fichier dans /usr/local/etc/svn-mailer.conf
Le dossier hooks est déjà en place dans votre dépôt svn (repository). Il contient les exemples des hooks disponibles, mais ces exemples ne sont pas activés.
Les 2 hooks qui sont appelés lors du commit sont :
Dans le premier, on peut mettre - par exemple - un script qui empêche la réalisation du commit si le commentaire est vide.
Pour l’envoi du mail, c’est post-commit qui doit être activé.
Voici un exemple de post-commit :
#!/bin/sh
CONFIG="/usr/local/etc/svn-mailer.conf"
MAILER="/usr/local/bin/svn-mailer"
# These are passed in by subversion
REPOS="$1"
REV="$2"
"${MAILER}" --commit --config "${CONFIG}" --repository "${REPOS}" --revision "${REV}"
exit 0
Pour l’installer :
Pour tester le post-commit directement, sans svn :
sudo -u svn ./post-commit <repos> <rev>
Remplacer repos et rev par le chemin du dépôt et le numéro d’une révision existante. Par exemple :
sudo -u svn ./post-commit /var/svn/repos 10
Vous n’avez plus qu’à consulter votre boîte aux lettres.
Les forums sont fermés.