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!
Réponses
Trop de publicités?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
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.
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.
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. .
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