Question

J'écris un crochet pre-commit, ou mieux, je l'édition du crochet qui est livré en standard sur le Tigris version SVN.

Mes objectifs sont modestes, je veux juste écrire un message d'erreur à la personne qui a commis sans fournir un message de validation.

Alors mes pensées devaient simplement écrire à stderr avec un simple message d'erreur. Mais pour une raison quelconque, mes messages ne semblent jamais passer.

Tout le monde sur Internet dit que je l'ai appris à écrire à stderr. Mais d'une certaine manière qui ne fonctionne pas.

REPOS="$1"
TXN="$2"


LOG=""
#here is where it seems to wrong
#if [ ${#LOG} -lt 1 ]
        echo "You did not provide a commit message, please try again." 2>&1
#fi

echo
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
   grep "[a-zA-Z0-9]" > LOG || exit 1

# Exit on all errors.
set -e


# All checks passed, so allow the commit.
exit 0

Vous devez me excuser si cela est une question stupide, mais je suis un novice linux, donc des excuses au préalable.

Merci, Jasper

Était-ce utile?

La solution

Votre façon de déterminer le message du journal est erroné. Essayez ceci:

SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c`

if [ "$LOGMSG" -lt 1 ]; then
  echo -e “Please provide a meaningful comment when committing changes.” 1>&2
  exit 1
fi

Autres conseils

Votre code:

echo "You did not provide a commit message, please try again." 2>&1

n'imprime pas à stderr (au lieu qu'il stderr vers stdout). Utilisez plutôt (important est le 1> et 2 ):

echo "You did not provide a commit message, please try again." 1>&2
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top