J'ai un crochet post-commit svn qui fonctionne bien à partir de la ligne de commande lorsque je lancescénario commit post-svn passe de la ligne de commande, mais pas lorsque le fichier commiting (s) à svn
env - ./foo.sh /path/to/svn/repos/ 12345
mais Lorsque le script est appelé depuis svn, il ne semble pas fonctionner. Ce que je fais essentiellement est de vérifier les fichiers validés et si un fichier particulier est modifié, je fais une exportation svn de celui-ci vers un partage réseau. Fonctionne très bien à partir de la ligne de commande.
Le script post-commit est la suivante:
#!/bin/sh
REPOS="$1"
REV="$2"
CHANGED=`/usr/bin/svnlook changed -r "$REV" "$REPOS"`
SOURCE="svn+ssh://localhost/path/to/svn/repos/somefile.zip"
DEST="/mnt/build/somefile-r$REV.zip"
if [[ "$CHANGED" =~ "trunk/somedir/somefile.zip" ]]
then
`/usr/bin/svn export --non-interactive --trust-server-cert $SOURCE $DEST`
fi
exit 0
est-il un moyen de sortie des messages d'erreur dans un fichier lorsque le script est exécuté, ou plus précisément la ligne d'exportation de svn (où je pense qu'il pourrait y avoir un problème)?
pour les curieux, j'ai découvert que le script, lorsqu'il est invoqué par svn, est lancé en tant qu'utilisateur qui a vérifié dans le fichier (s). Passer de l'utilisation du schéma svn + ssh: // à un fichier: // à la place l'a corrigé – funkadelic