2009-07-14 7 views
1

Je bloque actuellement toute validation sur SVN qui ne contient pas de commentaire en utilisant des hooks de pré-validation.Comment puis-je forcer la saisie d'un nom de réviseur dans les commentaires de validation SVN

Maintenant, je tiens à exprimer ce afin que le Engagez commentaire doit avoir la ligne

« Commenté par: nom »

Actuellement, le fichier crochet pré commettras ressemble

:: SET REPOS=%1 

:: Transform forward-slashes to back-slashes for Windows 
:: SET REPOS=%REPOS:/=^\% 

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9] 
IF %ERRORLEVEL% EQU 0 GOTO CHECKSUOFILES 
echo "Commit Comments are Required" >&2 
exit 1 

Est-ce que quelqu'un a implémenté quelque chose de similaire

J'utilise actuellement SVN 1.6.0

Répondre

1

Je pris une route assez primitive pour répondre à ma propre question. J'ai modifié les pré engagent crochet à rechercher le texte « Commenté par: » ou bien elle va bloquer la validation

Il y a des problèmes avec ce

  • Vous pouvez contourner simplement en entrant le Examiné par: et alors pas un nom
  • nous demandons aux développeurs d'entrer Commenté par: pas un pour non révisés engage

Cependant, il nous permettra d'analyser les journaux SVN pour voir ce qui a/n'a pas été examinée et par qui.

5

Cela me semble être une mauvaise pratique - contraindre quelque chose à être examiné va empêcher les vérifications fréquentes, ce qui est l'une des choses que vous voulez encourager. En général, je suis un peu consterné par la tendance apparente à utiliser un logiciel de contrôle de version comme une sorte de système de gestion de flux de travail - ce n'est pas du tout ce à quoi il est destiné!

0

Vous avez fondamentalement déjà un exemple ici. Il suffit d'ajouter quelque chose comme:

set reviewed=no 
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr "reviewed by" && set reviewed=yes 
if "%reviewed%"=="no" GOTO NOTREVIEWED 

Cependant.

La révision d'une modification est plus facile lorsque la modification a déjà été validée. Aussi, comme déjà mentionné par Neil, vous ne voulez pas décourager les commotions de taille de morsure régulière. Passer en revue d'énormes taches de changement ne fonctionne pas bien.

Si vous voulez vraiment vous assurer que chaque changement est examiné, vous devez utiliser le concept de feature branches. Faire une branche pour chaque changement, et permettre de petits commits fréquents sans avis là-bas. Lorsque la modification est prête, le réviseur peut l'examiner en validant et en fusionnant les modifications dans le tronc.

0

Vous pourriez vouloir utiliser quelque chose comme Git (http://git-scm.com/) au lieu de SVN. Avec Git, vous pouvez avoir une version "bénie" du projet qui ne peut être écrite que par vos réviseurs. Les individus travaillent tous avec le code sur leurs machines locales et peuvent pousser leurs changements jusqu'à une instance de "révision" du projet. Les réviseurs peuvent voir les changements dans l'instance "review" et pousser les changements individuels jusqu'à la version "béni". Git peut également convertir directement vos projets SVN existants.

+0

Ce n'est pas vraiment un argument pour passer à git. Vous pouvez également "bénir" une branche dans SVN. –

Questions connexes