2010-08-19 25 views
3

Je suis nouveau à SharpSVN (et franchement - assez nouveau pour C# aussi). J'ai essayé d'obtenir un simple hook de pré-commit qui vérifie un commentaire. (La livraison échoue en l'absence d'un commentaire)Crochets de pré-validation en C# avec SharpSVN

Il y a plusieurs postes (comme this one) qui sont liés et utiles, mais j'ai quelques questions fondamentales qui me empêchent d'obtenir de plus:

1) Comment obtenir du code comme le lien ci-dessus en C#? (c.-à-d. quel contexte C# utiliserais-je l'application console? csharp class?)

2) Dans un contexte Windows Server, comment appeler mon programme C# compilé?

J'ai essayé la méthodologie this answer's sans aucune chance.

Merci d'avance.

Répondre

4

Si vous créez un hook de pré-validation, vous devez l'appeler pre-commit.exe. (Subversion accepte le hook avec les extensions .exe, .cmd, .bat et .wsf.)

Les hameçons communiquent via stdout, stderr et dans certains cas stdin, vous devez donc compiler votre application en tant qu'application console. Pour que le hook fonctionne, vous devez placer le fichier .exe (et les DLL requises) dans le répertoire hooks du référentiel. Voir How to access file information in a pre-commit hook using SharpSVN pour un exemple de code.

0

Compilez votre "hook" en tant qu'application de console, puis écrivez un fichier de commandes qui appelle votre application de console. Le fichier batch doit être nommé correctement et placé dans le dossier "hooks" de votre dépôt Subversion.

Pour votre cas spécifique, le fichier de commandes doit être appelé pre-commit.bat (ou pre-commit.cmd).

0

Je devais empêcher les utilisateurs de s'engager dans la mauvaise branche par erreur. J'ai donc écrit un hook pré-commit qui vérifierait le commentaire pour une valeur de clé. Si le commentaire ne commence pas par la bonne touche, la validation est abandonnée.

Voici le projet: http://sourceforge.net/projects/csvnprecommit/

Ne hésitez pas à utiliser comme base pour votre propre crochet ou l'utiliser comme est. Si vous trouvez un bug, soumettez-le au projet.