Frage

Ich schreibe einen Pre-Commit-Haken oder besser, ich bearbeite den Haken, der in der Tigris SVN-Veröffentlichung Standard ist.

Meine Ziele sind bescheiden, ich möchte nur eine Fehlermeldung an die Person schreiben, die begangen hat, ohne eine Commit -Nachricht bereitzustellen.

Meine Gedanken waren also, nur mit einer einfachen Fehlermeldung an Stderr zu schreiben. Aber aus irgendeinem Grund scheinen meine Nachrichten nie durchzukommen.

Alle im Internet sagen, ich muss an stderr schreiben. Aber irgendwie funktioniert das nicht.

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

Sie müssen mich entschuldigen, wenn dies eine dumme Frage ist, aber ich bin ein Linux -Anfänger, also entschuldige mich vorher.

Danke, Jasper

War es hilfreich?

Lösung

Ihre Art, die Protokollnachricht zu bestimmen, ist falsch. Versuchen Sie es stattdessen:

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

Andere Tipps

Dein Code:

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

druckt nicht nach Stderr (stattdessen leitet es Stderr zu stdout weiter). Stattdessen verwenden (wichtig ist die 1>&2):

echo "You did not provide a commit message, please try again." 1>&2
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top