我想在svn中为jshint添加预提交钩子。因此,当我刚接触svn时,我需要一些帮助。我已经做了一些跟随的工作。下面是我的本地repo文件夹结构
svn-repo
branches
hooks
pre-commit.sh
tags
trunk
scripts
script.js
index.html
.jshintrc
这是我的预提交钩子代码
ROOT_DIR=$(git rev-parse --show-toplevel) # gets the path of this repo
CONF="--config=${ROOT_DIR}/build/config/jshint.json" # path of your jshint config
JSHINT=$(which jshint) # jshint path
if git rev-parse --verify HEAD >/dev/null 2>&1; then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
for file in $(git diff-index --name-only ${against} -- | egrep \.js); do
if $JSHINT $file ${CONF} 2>&1 | grep 'No errors found' ; then
echo "jslint passed ${file}"
exit 0
else
$JSHINT $file
exit 1
fi
done
我全局安装了jshint,位于以下位置
/usr/local/bin/jshint
现在当我提交不正确的javascript时,它仍然会被提交并且不会抛出任何错误,即使js包含根据.jshintrc的错误。
如何进行此预提交工作?
答案 0 :(得分:0)
<强>相依强>
相关(部分)
如果你想从客户端监视钩子并看到任何输出,你必须将它重定向到stderr(你没有这样做),哪个钩子将返回客户端
<强>问题强>
此脚本是否在独立模式下按预期工作?