SVN 预提交挂钩 linux

SVN pre-commit hook linux

我正在尝试创建一个预提交挂钩,它将搜索正在提交的文件与预先确定的字符串,如果它包含它,那么它会在提交之前出错。

我在网上搜索后得到以下信息:

#!/bin/sh
REPOS=""
TXN=""
SVNLOOK=/usr/bin/svnlook 
$SVNLOOK diff "$REPOS" -t "$TXN" | [[ grep "^+builder_group">/dev/null exit 0 ]]  ||     
echo "File contains builder_group commit failed"  >&2
exit 1

这是我得到的错误:

svn: E165001: Commit failed (details follow):
svn: E165001: Commit blocked by pre-commit hook (exit code 2) with output:
/etc/svn/testrepo/hooks/pre-commit: line 7: conditional binary operator expected 
/etc/svn/testrepo/hooks/pre-commit: line 7: syntax error near `"^+cod_bank">'
/etc/svn/testrepo/hooks/pre-commit: line 7: `$SVNLOOK diff "$REPOS" -t "$TXN" | [[ grep "^+builder_group">/dev/null exit 0 ]]  ||'

你能看出为什么它会像现在这样显示错误吗?谢谢你。

这是我最终不得不将其更改为使其正常工作的内容。

    $SVNLOOK diff -t "$TXN" "$REPOS" | grep -i "builder_group" > /dev/null && { echo "File contains builder_group commit failed." 1>&2; exit 1; }
    exit 0;

根据 grep -i "abc123" 后字段中的内容,它将搜索文件,如果匹配或包含相同的字母路径,则会导致提交错误。

例如:如果文件包含aabc123,它仍然会出错。