12

SVNでpre-commitスクリプトを作成しようとしていますが、(ファイル全体ではなく)変更された行でのみ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
4

5 に答える 5

0

概念的には意味がありません。

phpcs は、正しく分析するために、穴のコンテキストを知る必要があります。

変更された行のみをスキャンすると、コンテキストが削除されます。

于 2013-03-08T15:51:00.480 に答える
-1

Phabricator のツール Arcanist での方法は次のとおりです。

  1. 変更されたすべてのファイルでphpコードスニファーを実行し、すべてのエラーを収集します
  2. これらのエラーを行番号で制限します。このコミットで変更された行番号のみが許可されます

LineA の変更が LineB でエラーを引き起こした場合、これはもちろんいくつかの特定のケースをカバーしません。

于 2014-12-10T09:31:46.877 に答える