相关疑难解决方法(0)

Git:使用PHP_CodeSniffer预接收挂钩

从SVN切换到Git后,我们失去了通过pre-commitsubversion服务器上的钩子强制执行编码标准的能力.

使用Git,您只能在客户端上使用预提交挂钩,而这些挂钩无法以任何方式强制执行.更糟糕的是,我们让开发人员使用所有三个主要操作系统,因此在Linux或OS X上运行的预提交挂钩不会自动在Windows上运行.

要走的路是pre-receive在服务器上实现一个钩子,但解决方案并不像看起来那么容易:

想象一下,开发人员做了20次提交并希望推动它们.所有预提交和预收到钩,我知道(的1,2)只检查单的提交,这将最终失败,并防止推.现在,开发人员修复了问题并进行了另一次提交,并尝试再次推送.由于钩子检查单个提交,它将再次失败.

所以我们需要一个pre-receive钩子,它会在所有要推送的提交中生成所有已更改文件的列表,并仅在当前状态下运行phpcs.

这样的钩子脚本是否已存在?哪里?

编辑:似乎有一个脚本可以创建该文件列表 - 不幸的是在Python中,但可以移植.我仍然对PHPCS的预制解决方案感兴趣:)

php git coding-style codesniffer

13
推荐指数
1
解决办法
4280
查看次数

标签 统计

codesniffer ×1

coding-style ×1

git ×1

php ×1