Os avisos podem realmente ser obtidos em ganchos de pós-commit fazendo com que eles falhem (com $? != 0
, assim como com ganchos de pré-consolidação).
Então, no meu caso, eu fiz o comando que estou usando return 1
para erros e 2
para warnings, e eu chamo isso em ambos os ganchos pré e pós-commit.
No gancho pre-commit, eu tenho:
/usr/bin/augeas-validator $(svnlook changed -t "$TXN" "$REPOS" | awk '/^[^D].*$/ {print $2}')
if [ $? = 1 ]; then
exit 1
fi
enquanto no post-commit hook, eu tenho:
/usr/bin/augeas-validator $(svnlook changed -r "$REV" "$REPOS" | awk '/^[^D].*$/ {print $2}') || exit 1
Assim, os erros impedem a confirmação, enquanto os avisos apenas eliminam o erro de gancho post-commit, o que não impede o commit, mas ainda avisa o usuário com o conteúdo de STDERR
.