comment écrire un svn script hook
Je suis en train d'écrire un post commit hook script pour svn à l'exportation référentiel de team foundation server. (Lorsque vous validez un code, que la dernière version du code est copié à l'équipe de la fondation repo )
Seule langue que j'utilise est du C++ et de C et je n'ai jamais écrit un script. Quelqu'un peut-il me donner des instructions étape par étape pour cela? la langue à utiliser, quoi lire, etc... avec un exemple de code possible ??
Est-il possible d'écrire un script hook avec le c++? ou devrais-je apprendre à utiliser python ou ruby etc..
Tout d'abord, les réponses sont déjà disponibles ici. Deuxièmement: non. Il n'a pas à être un "script". Quoi que ce soit avec un bit d'exécution de travaux. Vous pouvez écrire votre crochets en C ou C++, trop.
OriginalL'auteur kiki | 2012-03-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire votre crochet à l'aide de C ou C++ si vous le souhaitez. La plupart des gens utilisent Perl ou Python.
La chose principale est que
svnlook
doit être utilisé dans votre script hook et passvn
. svnlook est plus rapide et plus sûr quesvn
. En fait, dans la pre-commit scripts, vous devez utilisersvnlook
puisque vous n'avez pas de révision du dépôt.Voici quelques choses à garder à l'esprit au sujet de votre
post-commit
crochet:pre-commit
crochet qui échoue si les développeurs ne le faites pas droit.post-commit
crochet, laPATH
variable d'environnement a été supprimé. Si vous avez besoin d'accéder à une autre commande ou un fichier, vous devez fournir le chemin d'accès complet de vous-même.ARGV
. Deux paramètres seront passés à vous:svnlook
de commande).Tout autre personne, vous devez en déduire si
svnlook
(que vous pouvez exécuter via lesystem
de commande. Cependant, depuis que vous êtes en train d'écrire des choses en C et C++, vous pourriez être en mesure d'utiliser le construit en La Subversion de l'API).Une autre possibilité: l'Utilisation continue du système de construction comme Jenkins pour faire le sale boulot pour vous. Vous pouvez trouver plus facile de travailler par le biais de Jenkins, au lieu de se demander comment un post-commit hook pourrait accomplir cette tâche. Un des avantages de Jenkins est que quand les choses vont mal, vous n'êtes pas l'envoi a échoué post-commit des messages à l'utilisateur (qui n'est probablement pas une faute). Au lieu de cela, vous chat obtenir un historique complet de ce qui s'est passé, et d'alerter la personne qui peut réellement résoudre le problème.
Voici un exemple d'une j'ai écrit ce qui est en Perl. Ne sais pas si ça va vous faire du bien.
En fait, vous pouvez utiliser Jenkins faire plus que simplement construit, et parfois même pas de l'utiliser pour les versions. Je voulais uniquement à utiliser Jenkins dans ce cas il suffit de faire votre synchronisation entre Subversion et TeamFoundation.
OriginalL'auteur David W.
Vous pouvez trouver des instructions sur la façon de définir un pre-commit hook ici:
http://wordaligned.org/articles/a-subversion-pre-commit-hook
La création d'un post-commit est similaire à celle de l'instruction.
Une fois que vous avez copié le post-commit modèle dans un nouveau fichier, il vous suffit d'ajouter une ligne pour appeler un programme que vous avez écrit en c++ et tout simplement passer les arguments à votre programme.
Cela dépend de ce que vous êtes jusqu'à, mais la plupart du temps, c'est d'économiser plus de temps à utiliser un langage de script shell-script ou python pour faire votre travail.
Oui, il y a un modèle dans le svn sources: svn.apache.org/repos/asf/continuum/trunk/continuum-release/src/... Maintenant que vous avez le référentiel et la révision, vous pouvez simplement appeler
svn
pour obtenir toutes les informations dont vous avez besoin de le commettre.Je suppose que j'ai besoin d'aide en train d'écrire un script. Est-il une bonne ressource, je peux lire ou regarder? avec des petits exemples pour essayer et obtenir la sensation de celui-ci?
OriginalL'auteur devsnd
Ici est un stackoverflow répondre ici avec un échantillon de post-commit hook sur windows, à l'aide de windows native des commandes shell - https://stackoverflow.com/a/3630534/7984
OriginalL'auteur Philibert Perusse