SVN pre-commit hook linux

时间:2018-05-23 18:37:14

标签: svn tortoisesvn hook pre-commit-hook pre-commit

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

尝试在线搜索后我有以下内容:

#!/bin/sh
REPOS="$1"
TXN="$2"
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 ]]  ||'

你能看出为什么会出现这样的错误吗?谢谢。

1 个答案:

答案 0 :(得分: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,它仍然会出错。