【发布时间】:2015-07-08 03:09:07
【问题描述】:
我需要最基本的钩子来防止空评论签入。谷歌搜索,找到示例 bash 脚本。简短地说,这就是我所拥有的:
#!/bin/sh
REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
ICONV=/usr/bin/iconv
SVNLOOKOK=1
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep "[a-zA-Z0-9]" > /dev/null || SVNLOOKOK=0
if [ $SVNLOOKOK = 0 ]; then
echo "Empty log messages are not allowed. Please provide a proper log message." >&2
exit 1
fi
# Comments should have more than 5 characters
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep [a-zA-Z0-9] | wc -c)
if [ "$LOGMSG" -lt 6 ]; then
echo -e "Please provide a meaningful comment when committing changes." 1>&2
exit 1
fi
现在我正在使用 Tortoise SVN 对其进行测试,结果如下:
提交失败(详情如下):提交被预提交钩子阻止 (退出代码 1),输出:/home/svn/repos/apress/hooks/pre-commit: 第 11 行: : command not found 不允许空日志消息。 请提供正确的日志消息。此错误是由 Subversion 服务器上的自定义挂钩脚本。请联系您的 服务器管理员寻求解决此问题的帮助。
什么是错误? svnlook 在 /usr/bin 我对 Linux 很陌生,不明白会发生什么..
【问题讨论】:
标签: linux bash shell svn commit