Comment puis-je mettre en œuvre le Post-Commit Hook avec Trac & SVN dans un Environnement Windows?
Je suis en cours d'exécution dans un environnement windows avec Trac /SVN et je veux s'engage pour le dépôt d'intégrer au Trac et fermer les bogues qui ont été noté dans le SVN Commentaire.
Je sais qu'il y a certains post-validation des crochets pour le faire, mais il n'y a pas beaucoup d'informations sur la façon de le faire sur windows.
Quelqu'un fait avec succès? Et quelles ont été les étapes à suivre pour arriver à ça?
Voici le crochet j'ai besoin de mettre en place dans le SVN, mais je ne suis pas sûr de savoir exactement comment faire cela dans l'environnement Windows.
Vous devez vous connecter pour publier un commentaire.
Benjamin réponse est proche, mais sur Windows, vous avez besoin pour donner le crochet fichiers de script exécutable de l'extension, comme .bat ou .cmd. J'utilise .cmd. Vous pouvez prendre le modèle de scripts, qui sont des scripts shell unix, shell scripts et de les convertir en .bat/.cmd syntaxe.
Mais pour répondre à la question de l'intégration avec Trac, suivez ces étapes.
De s'assurer que Python.exe est sur le chemin d'accès système. Cela rendra votre vie plus facile.
Créer des post-commit.cmd dans \crochets dossier. Ceci est le script hook que la Subversion s'exécuter sur le post-commit événement.
Créer trac-post-commit.cmd dans \crochets dossier:
Créer trac-post-commit-resolve-ticket-ref.py dans \crochets dossier. J'ai utilisé le même script à partir de EdgeWall, seulement je l'ai renommé pour mieux clarifier son but.
Bien, maintenant que j'ai un peu de temps pour poster mon expérience après comprendre tout cela, et grâce à Craig pour pouvoir me mettre sur la bonne voie. Voici ce que vous devez faire (au moins avec SVN v1.4 et Trac v0.10.3):
%~dp0\trac-post-commit-crochet.cmd %1 %2
Les parties les plus importantes ici sont à définir votre TRAC_ENV qui est le chemin d'accès à la racine du référentiel (SET TRAC_ENV=C:\trac\MySpecialProject)
La prochaine MAJORLY CHOSE IMPORTANTE dans ce script est de faire ce qui suit:
si vous voyez dans le fichier de script ci-dessus, je suis en utilisant svnlook (qui est un utilitaire de ligne de commande avec la commande SVN) pour obtenir le message du JOURNAL et l'auteur qui fait de la validation du référentiel.
Puis, à la ligne suivante du script est fait appeler le code Python pour effectuer la clôture de la vente des billets et d'analyse du message de journal. J'ai dû le modifier pour passer dans le message de Journal et l'auteur (dont les noms d'utilisateur que j'utilise dans Trac correspondre les noms d'utilisateur dans le SVN de sorte que c'était facile).
La ligne ci-dessus dans le script passe dans le script python le Trac de l'Environnement, la révision, la personne qui a fait le commit, et leur commentaire.
Voici le script Python que j'ai utilisé. Une chose que je n'ai supplémentaires à l'écriture régulière est à nous d'utiliser un champ personnalisé (fixed_in_ver) qui est utilisé par notre équipe de contrôle qualité, de dire si le correctif ils sont de la validation est dans la version de code qu'ils ont testé l'assurance de la qualité. Donc, j'ai modifié le code dans le script python pour mettre à jour ce champ sur le billet. Vous pouvez supprimer ce code, vous n'en aurez pas besoin, mais c'est un bon exemple de ce que vous pouvez faire pour mettre à jour les champs personnalisés dans Trac si vous aussi vous voulez faire.
Je l'ai fait en ayant les utilisateurs peuvent éventuellement inclure dans leur commentaire quelque chose comme:
Je puis utilisez la même technique que le script python utilise avec les expressions régulières pour obtenir les informations. Il n'était pas trop mauvais.
De toute façon, voici le script python que j'ai utilisé, j'espère que c'est un bon tutoriel sur exactement ce que j'ai fait pour l'obtenir pour travailler dans le monde de windows de sorte que vous pouvez tirer profit de votre propre boutique...
Si vous ne voulez pas avoir affaire avec mon code supplémentaire pour mettre à jour le champ personnalisé, obtenir la base de script à partir de cet emplacement, comme l'a mentionné au-dessus de Craig (Script De Edgewall)
Post-validation des crochets de vivre dans les "crochets" répertoire où vous avez le dépôt sur le côté serveur. Je ne sais pas où vous les avez dans votre environnement, c'est juste un exemple
par exemple (windows):
par exemple (llinux/unix):
Une chose que je vais ajouter "Code de Singe Réponse est PARFAIT" - est à se méfier de ce (mon erreur)
Je n'avais pas mis les Non-Système de chemins et m'a pris un moment pour voir ce qui est évident 😀
Tout simplement correspondre sûrs que personne d'autre fait la même erreur! Merci Code De Singe! 1000000000 points 😀
D'abord un grand merci pour le Code de Singe!
Cependant, il est important d'obtenir le droit de script python en fonction de votre trac version. Pour obtenir la version appropriée, SVN découvrez le dossier:
http://svn.edgewall.com/repos/trac/branches/xxx-stable/contrib
où xxx correspond à la trac version que vous utilisez, par exemple: 0.11
Sinon vous obtiendrez un post-commit l'erreur qui ressemble à ceci:
commettre échoué (détails suivront): FUSION de '/svn/projet/trunk/web/annuaire/': 200 OK
Pour tous les utilisateurs Windows qui veut installer un nouveau trac (0.11.5):
Suivez les instructions sur le Trac du site nommé TracOnWindows.
Télécharger 32 bits 1.5 Python même si Vous avez 64 bits de Windows.
note: j'ai vu quelque part des instructions sur la façon de compiler trac de travailler en mode natif sur système 64 bits.
Lorsque Vous installez tout ce qui est nécessaire d'aller au dépôt du dossier. Il y a le dossier de crochets.
À l'intérieur il mettre les fichiers de Code Monkey mentionné, mais ne pas créer "trac-post-commit-resolve-ticket-ref.py" comme il l'a fait. Prenez conseil auprès d'Quant Analyste et de faire comme il a dit:
"Cependant, il est important d'obtenir le droit de script python en fonction de votre trac version. Pour obtenir la version appropriée, SVN découvrez le dossier:
http://svn.edgewall.com/repos/trac/branches/xxx-stable/contrib
où xxx correspond au trac de la version que vous utilisez, par exemple: 0.11"
À partir de là télécharger le fichier "trac-post-commit-crochet" et le placer dans des crochets dossier.
Modifier ces lignes trac-post-commit.cmd
Souviens pas de la dernière \ !!!
J'ai enlevé les guillemets de la dernière ligne -r "%REV%" être -r %REV%, mais je ne sais pas si c'est nécessaire. Cela ne fonctionnera pas maintenant ( au moins sur mon win 2008 server ), parce que le crochet sera un échec ( commit va aller ok). Ce que cela a à voir avec les autorisations. Par défaut, les autorisations sont limitées et nous devons permettre à python ou svn ou de trac ( ce que je ne sais pas ) pour modifier le trac de l'information. Alors, allez à votre trac dossier de,dossier de projet,base de données dossier, clic droit trac.db et choisissez propriétés. Allez à l'onglet sécurité et de modifier les autorisations pour permettre à tout le monde. Ce n'est pas si sûr, mais j'ai perdu toute la journée sur cette question de sécurité et je ne veux pas perdre une autre juste pour savoir pour quel utilisateur vous devez activer les autorisations.
Espère que cela aide....