PHP_CodeSniffer和SVN预提交挂钩问题

时间:2011-02-09 12:19:19

标签: php svn coding-style

我最近下载了最新版本的CodeSniffer(1.3.RC0)。我更喜欢这个版本而不是稳定版本(1.2.2),因为我想要“严重性”功能。

我修改了现有的Drupal标准软件包,以与此版本的CodeSniffer兼容并坚持我自己的严重性策略。当我从命令行运行phpcs时,我完全没有问题。它正确地嗅探代码,过滤严重性并且工作正常。

当我尝试使用subversion预提交钩子自动化嗅探时出现问题。似乎这个版本附带的phpcs-svn-pre-commit脚本根本不起作用。

我一步一步地按照http://pear.php.net/manual/en/package.php.php-codesniffer.svn-pre-commit.php中的指南,但是当我提交一个包含编码标准错误的文件(通过命令行执行phpcs和我的Drupal标准包检测到)时,subversion只是让文件传递并提交更改。

有没有人遇到同样的问题?

提前致谢。

已编辑:执行示例。

$ phpcs --standard=Drupal --severity=4 ak_gourmet.module 
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/IcePHP.so' - /usr/lib/php5/20090626/IcePHP.so: cannot open shared object file: No such     file or directory in Unknown on line 0
FILE: ...ce/trunk/httpdocs/sites/all/modules/custom/ak_gourmet/ak_gourmet.module
--------------------------------------------------------------------------------
FOUND 21 ERROR(S) AFFECTING 27 LINE(S)
--------------------------------------------------------------------------------
  17 | ERROR   | Concat operator must be surrounded by spaces. Found "...
     |         | '<p>'. "; expected "... . "
  17 | ERROR   | Concat operator must be surrounded by spaces. Found "...
     |         | .'</p>';..."; expected "... .;..."
  40 | WARNING | A comma should follow the last multiline array item. Found:
     |         | MENU_NORMAL_ITEM
  53 | WARNING | A comma should follow the last multiline array item. Found:
...

在subversion预提交钩子中添加了一行(正在执行):

# execute code sniffer with drupal standards
/usr/bin/scripts/phpcs-svn-pre-commit --standard=Drupal --severity=4 "$REPOS" -t "$TXN" >&2 || exit 1

提交错误的文件:

$ svn commit -m "Testing svn hook-precommit" ak_gourmet.module 
Enviando       ak_gourmet.module
Transmitiendo contenido de archivos .
Commit de la revisión 5814.

0 个答案:

没有答案