comment faire pour installer svn post-commit hook
Je suis en cours d'exécution SVN sous Linux. J'espérais pour exécuter l'auto-déploiement une fois engagé. Basé sur mes recherches, il semble comme svn post-commit pourrait faire l'affaire. Mais je ne pouvais pas trouver SVN post-commit de mon SVN de l'installation. Donc je me demande si c'est une installation séparée? Est-il un SVN post-commit hook que je peux le télécharger et l'installer?
OriginalL'auteur johnsam | 2011-09-28
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas une installation séparée. Dans votre respository répertoire, il y a un 'crochets' dir. Vous pouvez trouver de post-commit.tmpl, juste de modifier le fichier et le renommer en fichier exécutable en fonction de votre type de système d'exploitation.
J'ai copié pre-commit.pl et n'a pas de travail. Après renommer à s'engager au préalable, il fonctionne.
C'est bizarre, mais si le répertoire est mentionné partout, je n'ai jamais eu de «crochets» dir dans mon référentiel. De plus,
locate post-commit
sorties de rien du tout. Doit-il travailler si je créerhooks
répertoire par moi-même? Et doit-il être créé dans le.svn
répertoire, ou dans le répertoire racine du référentiel?OriginalL'auteur zhongshu
Tout d'abord, vous ne voulez probablement pas à le faire en post-commit. La raison en est que vous ne voulez pas faire quelque chose qui prend trop de temps pour faire un crochet parce que l'utilisateur n'a plus à attendre pour le crochet pour terminer avant de pouvoir continuer.
Pour répondre à votre question, regardez dans le répertoire de dépôt sur votre serveur, vous devriez voir la suite de répertoires et de fichiers:
L'un des répertoires est appelé
hooks
. Prendre un coup d'oeil dans ce répertoire:Ce sont des modèles pour les différents crochets. Vous verrez ceux-ci sont tous de simples BASH/Korn/Bourne shell scripts. Vous serez à l'aide de la
svnlook
commande pour obtenir des informations à propos de la révision ou de la transaction (si pre-commit hook) que votre utilisateur vient de commettre.Ce que vous voulez faire est de lancer la commande
svnlook changed
pour voir ce qui a changé, puis en fonction de cette information, vous devrez récupérer le fichier, et de le déployer. Cela signifie que vous aurez à créer un répertoire de travail et de faire une extraction. Imaginez un développeur de faire un checkin, et puis d'attendre pour votre post-commit hook faire une extraction et de déploiement.Ce que vous serait mieux de faire est de trouver quelque chose comme Jenkins à faire de votre post-validation des tâches. Jenkins est normalement un build continu serveur. Chaque fois que quelqu'un fait un commit, Jenkins fait un checkout sur le projet et de le construire. Il peut exécuter toutes sortes de tests, puis envoyez un email aux développeurs si il y a des problèmes.
Cependant, il peut aussi simplement faire une extraction et de déploiement si vous n'avez vraiment rien à construire. Jenkins utilise la version 1.6 de Java à exécuter, mais sinon, c'est assez facile à installer et à utiliser. C'est tout un menu, et vous n'avez pas besoin de savoir comment créer des fichiers XML ou écrire des programmes pour l'utiliser.
Donc, jetez un oeil à Jenkins et voir au sujet de faire votre déploiements à partir de là. De cette façon, vos développeurs peuvent continuer leur travail tandis que Jenkins gère les déploiements. Et, vous pouvez avoir Jenkins envoyer un e-mail, une messagerie instantanée, Twitter, ou même de changer un feu de circulation du vert au rouge si il ya un problème avec le déploiement.
Jenkins est livré avec la Subversion plugin est déjà installé, il fonctionne donc avec Subversion hors de la boîte. Il y a des plugins pour Git, ClearCase, StarTeam, BItKeeper, Baazar, et de nombreux autres systèmes de contrôle de source.
Ah, donc le
hooks
répertoire dans le référentiel du serveur! Ce n'était pas évident, par exemple, je n'ai pas accès à la racine du référentiel, mais plutôt à un sous-répertoire. Devrait crochets de travail, si je viens de créer sur mon PC ce répertoire avec un script?OriginalL'auteur David W.