2010-11-17 27 views
2

J'ai ajouté des hooks de pré-validation à mes dépôts SVN qui vérifient que les gens mettent un élément JIRA contre chaque commit. Cela fonctionne bien. Cependant, en regardant les fichiers svn, il serait bien d'avoir le résumé affiché dans le message de validation, sinon c'est juste un tas de chiffres et vous devez vous référer à JIRA tout le temps pour voir ce qui se passe. J'ai donc pensé que plutôt que d'obliger les gens à mettre le résumé à chaque fois, je pourrais analyser le message de validation et coller le résumé si nécessaire. Je peux réaliser ceci mais je ne suis pas au sujet de deux chosesPuis-je/dois-je mettre à jour le message de validation dans un hook de pré-validation SVN

  • Comment est-ce que je peux changer le message de validation pour une transaction dans le crochet?
  • Il existe de gros avertissements dans les documents SVN sur la modification des transactions pendant les hooks de pré-validation. Cela s'applique-t-il à la simple modification du message de validation?
+0

J'ai le même besoin - Chaque commit dans SVN, pour avoir Jira Issue id. Pourriez-vous partager votre hook pré-commit –

Répondre

2

Ne modifiez pas une révision pendant une validation! Cela inclut la modification de fichiers, la modification de propriétés ou même le message de validation. En fait, svnlook ne vous donne pas la possibilité de faire de telles choses et pour une bonne raison. Il y a de fortes chances que vous puissiez provoquer l'échec de la validation, car vous essayez de modifier le commentaire. Si vous voulez faire cela, utilisez au moins un déclencheur post-commit. De cette façon, vous avez un numéro de révision, et vous pouvez modifier svn: log.

Mieux encore, un crontab peut exécuter un travail pour parcourir votre journal Subversion et modifier le message de validation. De cette façon, vous n'êtes pas en train d'attacher la validation en attendant que votre déclencheur modifie le message de validation. Toutefois, la meilleure solution consiste à utiliser Hudson en tant que serveur de génération continue. Hudson construira automatiquement, exécutera vos tests, et enverra même des courriels aux développeurs sur les problèmes de construction.

Hudson a un plugin qui relie à Jira. Il va:

  • Ajouter un commentaire à un ticket Jira chaque fois qu'il fait une construction et détecte ce ticket dans le commentaire. De cette façon, vous pouvez regarder un ticket Jira et voir ce que la construction impliquait avec ce ticket.
  • Hudson affichera vos messages de validation avec des liens vers le ticket Jira concerné. Si un développeur veut voir les détails d'un ticket, il peut aller à Hudson et cliquer sur le lien.(Rien à voir avec Jira) Hudson vous permet également d'utiliser ViewVC ou Sventon comme un navigateur de code source. Lorsque vous regardez vos changements dans Hudson, il va se lier à ViewVC ou Sventon et vous montrer les différences dans les fichiers.
+0

Bonne suggestion sur le déclencheur post-commit, voici comment je l'ai implémenté. –

1

Cela s'applique sur le message de validation ainsi que le contenu car vous perdrez la synchronisation avec votre client. Pour le message de validation qui semblait ne pas être un gros problème, mais je recommanderais si le message de journal ne contient pas les informations nécessaires, il suffit de refuser la validation. Mise à jour: Ce que vous pouvez également faire est de changer les messages du journal plus tard (via un travail dont le svn repo de scan est basé sur le temps), car c'est une propriété de révision. Mais gardez à l'esprit que la modification du message de journal n'est enregistrée nulle part ...

1

Je l'ai fait il y a quelques années avec CVS ​​et JIRA, puis SVN et JIRA. D'une manière ou d'une autre, l'ajout de l'information de bogue au message de validation semble faux, j'ai donc modifié les autres outils qui affichaient le message de validation pour ajouter l'information de JIRA quand ils étaient vus. Cela évite également d'avoir des délais de validation en raison d'une transaction en attente de JIRA.

~ Matt

+0

Point intéressant que je préférerais ne pas avoir à changer tous les outils client car il y en a potentiellement plusieurs. Je préférerais résoudre cela une fois. –