我正在尝试添加第二个预提交脚本,当我将它放在钩子中时似乎没有捕获。
第一个脚本基本上锁定文件不被编辑。第二个脚本查看路径并将字符串值与正在提交的文件进行比较,如果匹配则会出错。
javascript:void((function(){var loc = location.href; if (loc.indexOf('PageSpeed') >= 0) return; loc.indexOf("?") < 0 ? (location.href = loc+"?PageSpeed=off") : (location.href = loc+"&PageSpeed=off");})());
即使字符串存在,它也会成功提交文件。任何想法为什么它不会抓住它?
答案 0 :(得分:0)
你的第一次测试:
if [ "$AUTHOR" == "testuser" ]; then
exit 0
fi
如果AUTHOR为testuser
,它会导致中止(退出值为零)!
所以你的第二次测试:
if [ "$AUTHOR" == "testuser" ]; then
exit 0
else
#User is trying to modify testfile.txt
echo "Only testuser can edit testfile.txt." 1>&2
exit 1
fi
这是不必要的,因为此时AUTHOR不是testuser
!
也许会更好而不是你的for循环:
if $SVNLOOK changed -t "$TXN" "$REPOS" | $GREP "^[U|A]" | $AWK '{print $2}' | grep -q 'path/to/file/testfile.txt'; then
echo "Only testuser can edit testfile.txt." 1>&2
exit 1
fi
if [[ "$PATH" == *path/to/file/testfile.txt ]]; then
测试不起作用,因为此测试不能理解shell变量(并且由于*
而最好用引号括起来。)
我会替换
for PATH in $COMPARE
do
if [[ "$PATH" == *path/to/look/at/only/* ]]; then
部分到
if echo ${COMPARE} | grep -q "path/to/look/at/only"; then