cwe*_*ske 13 php git coding-style codesniffer
从SVN切换到Git后,我们失去了通过pre-commitsubversion服务器上的钩子强制执行编码标准的能力.
使用Git,您只能在客户端上使用预提交挂钩,而这些挂钩无法以任何方式强制执行.更糟糕的是,我们让开发人员使用所有三个主要操作系统,因此在Linux或OS X上运行的预提交挂钩不会自动在Windows上运行.
要走的路是pre-receive在服务器上实现一个钩子,但解决方案并不像看起来那么容易:
想象一下,开发人员做了20次提交并希望推动它们.所有预提交和预收到钩,我知道(的1,2)只检查单的提交,这将最终失败,并防止推.现在,开发人员修复了问题并进行了另一次提交,并尝试再次推送.由于钩子检查单个提交,它将再次失败.
所以我们需要一个pre-receive钩子,它会在所有要推送的提交中生成所有已更改文件的列表,并仅在当前状态下运行phpcs.
这样的钩子脚本是否已存在?哪里?
编辑:似乎有一个脚本可以创建该文件列表 - 不幸的是在Python中,但可以移植.我仍然对PHPCS的预制解决方案感兴趣:)
我们现在使用预提交挂钩来检查代码和提交消息。
开发人员可以使用 跳过它们-n,但他们很少这样做,而且我们总是有另一个开发人员进行 QA,这样事情就会引起注意。
该钩子很重要,因为它会注意到文件何时损坏,因此损坏的 PHP 或 JS 根本不会被提交。
在https://github.com/netresearch/git-client-hooks找到它们的钩子代码
我们使用中央服务器进行开发,并且我们的 git 挂钩会自动安装,因为我们提供了一个中央 git 存储库模板,当您git clone或git init.
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |