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,它仍然会出错。
我正在尝试创建一个预提交挂钩,它将搜索正在提交的文件与预先确定的字符串,如果它包含它,那么它会在提交之前出错。
我在网上搜索后得到以下信息:
#!/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,它仍然会出错。