我想在SVN中构建预提交脚本,并且我想在修改后的行上仅运行(而不是整个文件)运行PHP_CodeSniffer。到目前为止,我有这个脚本:使用PHP_CodeSniffer仅用于修改的行
#!/bin/sh
REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep "[a-zA-Z0-9]" > /dev/null || exit 1
# Check for code validation before commiting the script using PHP_CodeSniffer
/tmp/pear/download/PHP_CodeSniffer-1.4.3/scripts/phpcs-svn-pre-commit "$REPOS" -t "$TXN" >&2 || exit 1
# All checks passed, so allow the commit.
exit 0
你可能应该概述一下你到目前为止所尝试的问题。 +1对于构建和询问;) – hakre
phpcs将该文件解析为AST并对其执行分析。所以在检查步骤中 - 没有可用的原始行数。我很难怀疑这是可能的 – zerkms
像@zerkms说的那样,整个文件必须被解析,但是可能检查是否有任何改变的行在包含cs错误的行集合中。 –