我正在尝试为Appache subversion配置预提交挂钩,这将对java文件强制执行checkstyle。 我是SVN配置和挂钩的新手,所以我在另一个服务器挂钩上使用测试,该挂钩正在其他服务器上运行。
但是,当我在全新安装上配置它并尝试提交(创建新文件夹)时,我收到以下错误:
A repository hook failed
svn: Commit blocked by pre-commit hook (exit code 2) with output:
/var/www/svn/mse/hooks/pre-commit: line 23: `permit-tag-write': not a valid identifier
这是第22行的钩子:
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
JAVA=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64
PROJECT_NAME=mse
permit-tag-write()
{
if $SVNLOOK changed -t "$TXN" "$REPOS" | awk '{print $2}' |\
grep -q "^tags" ; then
/bin/echo "Cannot commit to tags" 1>&2
exit 1
fi
}
答案 0 :(得分:3)
尝试更改脚本顶部的#!
行,以bash
而不是sh
调用shell。在严格的POSIX模式下,不允许使用函数名中的连字符。