我想在预提交钩子中抛出警告但不中止提交。但是,似乎 svn 缓冲了输出,并且仅在检查中止时才显示它。
是否可以在不中止的情况下输出警告?
答案1
实际上,可以通过使后提交钩子失败来获得警告(使用$? != 0
,就像使用预提交钩子一样)。
1
因此,就我而言,我制作了用于返回错误和警告的命令2
,并在提交前和提交后的挂钩中调用它。
在预提交钩子中,我有:
/usr/bin/augeas-validator $(svnlook changed -t "$TXN" "$REPOS" | awk '/^[^D].*$/ {print $2}')
if [ $? = 1 ]; then
exit 1
fi
而在提交后钩子中,我有:
/usr/bin/augeas-validator $(svnlook changed -r "$REV" "$REPOS" | awk '/^[^D].*$/ {print $2}') || exit 1
因此,错误会阻止提交,而警告只会使提交后挂钩出错,这不会阻止提交,但仍会使用 的内容警告用户STDERR
。
答案2
您可以使用 mail 命令通过电子邮件发送警告。