2008-09-12 7 views
0

Je voudrais automatiser TortoiseSVN dans le cadre d'un processus de validation. Spécifiquement je voudrais créer dynamiquement une entrée de journal pour le dialogue de livraison.Comment utiliser un crochet de validation de démarrage dans TortoiseSVN pour configurer une entrée de journal personnalisée?

Je sais que je peux lancer la boîte de dialogue de livraison à partir de la ligne de commande ou en faisant un clic droit sur un dossier et en sélectionnant svncommit.

Je voudrais utiliser le crochet de validation de démarrage pour configurer une entrée de journal. Je pensais que cela fonctionnait en passant un nom de fichier d'entrée dans la variable MESSAGEFILE mais quand j'ajoute un script hook il ne peut pas voir cette variable (hook lancé avec succès après avoir cliqué droit et choisi svncommit). Lorsque j'essaie d'utiliser la ligne de commande, j'utilise le paramètre/logmsgfile, mais il semble n'avoir aucun effet. J'utilise tortoisesvn 1.5.3.

Répondre

2

On dirait que c'est mon propre malentendu de l'API qui a causé un problème.


1) J'ai ajouté un script de début de commit commit à TortoiseSVN en utilisant le hooks gui dans la zone des paramètres du menu contextuel.

2) Le script reçoivent 3 informations: PATH MESSAGEFILE CWD
Pour plus de détails voir: Manual
Ceux-ci sont passés en ligne de commande arguements au script - pour une raison quelconque, je pensais qu'ils étaient définies comme des variables d'environnement temporaire .

Mon script ouvre alors simplement le fichier spécifié par le second argument et ajoute dans le texte personnalisé.

Lorsque la boîte de dialogue de livraison s'affiche, le texte personnalisé est présent.

3) Le meilleur de tous les cas, si le fichier tortoisesvn est lancé à partir d'un script directement dans la boîte de dialogue de validation:
par exemple. [tortoiseproc/commande: commit/chemin :./closeonend: 1]
Les hooks sont toujours appelés.

1

Si vous avez juste besoin d'un modèle statique, définissez la propriété tsvn: logtemplate.

Pour la génération dynamique, le paramètre/logmsgfile fonctionne, mais il semble avoir besoin du chemin d'accès complet. Un fichier de commandes ressemblant à ce qui suit pourrait fonctionner pour vous.

GenerateLogMsg.exe > tmp.msg 
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:. /logmsgfile:"C:\Documents and Settings\User\My Documents\Visual Studio Projects\Project\tmp.msg" 
+0

Le chemin complet requis pour/logmsgfile semble être la raison pour laquelle j'avais des problèmes avec cette commande particulière. Merci! – morechilli

Questions connexes