[phphook] un petit système de gestion des hooks de subversion

Description

Salut à tous,
La finalité de ce projet est de permettre d'ajouter simplement autant de hooks que l'on veut à un dépôt Subversion. Un hook est en fait une classe qui implémente l'interface SubversionHook. Lorsqu'un utilisateur commite des données, la méthode onPreCommit($objTransaction) est appelé, le paramètre $objTransaction étant la transaction en cours.
Pour ajouter un hook, il suffit d'ajouter une instance de la classe dans le tableau $arrConfiguration du fichier ./includes/main.include.php, et le fichier pre-commit.bat doit être placé dans le répertoire ./hook/ du dépot Subversion.
Voici un exemple de hook qui n'accepte pas les commits sans message.

Source / Exemple :


<?php
/* -------------------- */
   Application :: importInterface('SubversionHook');
   Application :: importClass('SubversionTransaction');
/* -------------------- */
   class CheckEmptyMessageHook implements SubversionHook {
   
      public function onPreCommit($objTransaction) {
         $strTransactionMessage = $objTransaction -> getMessage();
         if (trim($strTransactionMessage) == '') {
            $objTransaction -> reject('Le message est vide ! ');
         }
      }
   
   }
/* -------------------- */
?>

Conclusion :


Le projet en est vraiment à ces débuts : seul le hook sur les pre-commits est géré ... Mais les autres ne sont pas difficile à faire, loin de là.
De plus, il n'y a pas encore de fichier de configuration centralisé : il faut changer le répertoire des exécutables de Subversion directement dans le fichier ./classes/Subversion.class.php, etc.
Les classes qui modélisent les différentes entitées de subversion (SubversionTransaction, SubversionRevision, etc.) sont loin d'être complète et la gestion des exceptions n'est pas faite.
Et enfin, il manque une interface complète ... Ce sera d'ailleurs le principal atout du projet : une configuration simplifiée d'un serveur Subversion !
Voilà ! N'hésitez pas à poser des questions ou laisser des commentaires !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.