Per impedire che gli utenti inseriscano dei commit senza commento (o con commento troppo corto) è possibile inserire il seguente controllo nel file hooks/pre-commit:
REPOS="$1"
TXN="$2"
SVNLOOK=`which svnlook`
# check how many characters the user has placed in the comment
MESSAGE_TEXT=`$SVNLOOK log -t "$TXN" "$REPOS" `
COMMENT_LENGTH=`echo $MESSAGE_TEXT | grep "[a-zA-Z0-9]" | wc -c `
MIN_COMMENT_LENGHT_ALLOWED=12
if [ $COMMENT_LENGTH -le $MIN_COMMENT_LENGHT_ALLOWED ]
then
echo "*** ATTENZIONE ***" >&2
echo "Per ovvie ragioni non e' piu' possibile effettuare un commit con messaggio nullo o troppo corto." >&2
echo "Per favore, prenditi il tempo che occorre e scrivi un buon commento, servira' a comprendere meglio" >&2
echo "le modifiche che hai apportato." >&2
echo "Inoltre, se stai correggendo un errore/bug, includi alcune informazioni di test " >&2
echo "(ad esempio un lotto di test) che possano essere utili per controllare l'errore " >&2
echo "e per testare eventuali altre modifiche. " >&2
echo "" >&2
echo "Il testo da te inserito { $MESSAGE_TEXT } ha una lunghezza insufficiente: $COMMENT_LENGTH" >&2
echo "" >&2
exit 1
fi
Quello che avviene è piuttosto semplice:
- con svnlook si ottiene il messaggio di commit inserito dall'utente (si noti che il commit non è ancora stato confermato);
- si ottiene la lunghezza del messaggio di commit;
- se la lunghezza del messaggio è inferiore ad una lunghezza specificata, si provvede a notificare l'utente del problema e si termina in modo anormale lo script.
Nessun commento:
Posta un commento