42 votes

Types courants de crochets de subversion

Quels types de scripts de raccordement les personnes utilisent-elles pour Subversion? Juste des idées générales mais le code serait génial aussi!

69voto

Philibert Perusse Points 1737

Je suis à l'aide de l' pre-revprop-change crochet qui permet de réellement revenir en arrière et modifier les commentaires et l'information après la validation a été effectuée. C'est très utile en cas de manquant/errorneous de l'information dans la validation des commentaires.

Ici je poste un pre-revprop-change.bat le fichier batch pour Windows NT ou plus tard... Vous peut certainement améliorer avec plus de modifications. Vous pouvez également dériver une post-revprop-change.cmd pour la sauvegarde du vieux - snv:log quelque part ou tout simplement les ajouter à la nouvelle-journal des...

La seule partie délicate est d'être capable de l'analyser à partir de stdin le fichier de commandes... C'est fait ici avec l' FIND.EXE commande.

L'autre c'est que j'ai eu des rapports provenant d'autres utilisateurs des problèmes avec l'utilisation de l' /b avec l' exit commande. Vous pouvez avoir besoin juste pour enlever ce /b dans votre application spécifique si les cas d'erreur ne se comportent pas bien.

@ECHO OFF

set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow changes to svn:log. The author, date and other revision
:: properties cannot be changed
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow modifications to svn:log (no addition/overwrite or deletion)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%action%'=='M' goto ERROR_ACTION

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Make sure that the new svn:log message contains some text.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
 set bIsEmpty=false
)
if '%bIsEmpty%'=='true' goto ERROR_EMPTY

goto :eof



:ERROR_EMPTY
echo Empty svn:log properties are not allowed. >&2
goto ERROR_EXIT

:ERROR_PROPNAME
echo Only changes to svn:log revision properties are allowed. >&2
goto ERROR_EXIT

:ERROR_ACTION
echo Only modifications to svn:log revision properties are allowed. >&2
goto ERROR_EXIT

:ERROR_EXIT
exit /b 1 

8voto

Troels Arvin Points 2454

Si vous avez un mélange de unix et Windows utilisateurs de travailler avec le référentiel, je vous invite à utiliser le case-insensitive.py pre-commit hook-script comme une mesure de précaution. Il empêche difficiles à trier les situations où svn mises à jour échouent pour les utilisateurs de Windows à cause d'un changement de nom de fichier qui a changé le casse du nom de fichier. Croyez-moi, il ya une bonne chance qu'il va vous sauver de l'ennui.

5voto

Nathan Black Points 61

Nous utilisons FogBugz pour le suivi des bogues, il fournit des scripts de validation de sous-version qui vous permettent d’inclure un numéro de cas dans vos commentaires d’archivage, puis associent le bogue à la chèque corrigée. Une instance WebSVN doit être configurée pour que vous ayez un visualiseur Web pour votre référentiel.

3voto

abyx Points 15304

Sur mon lieu de travail, nous avons mis en place un hook post-commit qui génère des flux RSS qui sont affichés dans différents tableaux de bord et sont utilisés pour permettre aux réviseurs de code de savoir quand il est temps de passer en revue et pour nous de voir que les nouveaux employés s'engagent suffisamment. .

3voto

plusieurs choses nous les utiliser pour:

  • l'intégration avec le bug tracker (Trac dans notre cas - un message de commit qui dit 'Ferme #514' automatiquement les marques qui bug comme fermé
  • l'intégration de la construction de l'intégration (buildbot dans notre cas - à une validation à un regardé branche déclenche une accumulation
  • pre-commit hook pour la validation de l'engagement que nous utilisons svnchecker. Il permet de valider notre code Python pour la PEP8 exactitude
  • l'envoi d'archivage des mails à une liste de diffusion
  • l'exécution de scripts indentation

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X