J'essaie donc de faire fonctionner un crochet post-commit sur mon serveur Apache Subversion, plus précisément j'essaie d'envoyer un email à mon compte Google comme décrit sur ce lien .
Après avoir défini les autorisations pour le script et la copie de travail au même utilisateur et à l'accès en lecture/écriture, il a commencé à causer des erreurs MERGE lorsque les utilisateurs ont essayé de .
Après quelques lectures, j'ai découvert que c'était dû au fait que le hook post-commit ne fonctionnait pas et j'ai découvert qu'en tapant
svn - ./post-commit commit ../ 250 mailer.conf
Je reçois cette erreur :
> annerajb@annerajb-desktop:~/Desktop/TotEM_SVN/hooks$ env - ./post-commit.test commit ../ 250
/var/lib/python-support/python2.6/svn/fs.py:27: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
import sys as _sys, os as _os, popen2 as _popen2, tempfile as _tempfile
Traceback (most recent call last):
File "/usr/share/subversion/hook-scripts/mailer/mailer.py", line 1351, in <module>
svn.core.run_app(main, cmd, config_fname, repos_dir, sys.argv[3:3+expected_args])
File "/var/lib/python-support/python2.6/svn/core.py", line 288, in run_app
return apply(func, (application_pool,) + args, kw)
File "/usr/share/subversion/hook-scripts/mailer/mailer.py", line 80, in main
revision = int(cmd_args[0])
ValueError: invalid literal for int() with base 10: ''
./post-commit.test: 5: ../: Permission denied
Je ne sais pas pourquoi cmd_args[0] est vide si je lui passe une valeur.
#!/bin/sh
REPOS="$1"
REV="$2"
/usr/share/subversion/hook-scripts/mailer/mailer.py commit "$REPOS" \
"$REV" /usr/share/subversion/hook-scripts/mailer/mailer.conf
0 votes
Pouvez-vous corriger le formatage de votre sortie pour utiliser des polices à largeur fixe et inclure le contenu de votre fichier post-commit ?
0 votes
Je ne sais pas comment définir la largeur des polices de caractères. J'apprécierais des instructions.
0 votes
J'ai essayé de nettoyer un peu la question. N'hésitez pas à modifier ou à revenir en arrière si j'ai détruit votre question ! !!
0 votes
Avez-vous essayé de le déboguer ? Avez-vous essayé d'imprimer le contenu de cmd_args avant l'appel à int(cmd_args[0]) ? Par exemple, imprimez cmd_args juste pour voir ce qu'il contient.