gpt4 book ai didi

php - Git:使用 PHP_CodeSniffer 预接收 Hook

转载 作者:IT王子 更新时间:2023-10-29 00:43:14 26 4
gpt4 key购买 nike

自从从 SVN 切换到 Git 后,我​​们失去了通过 subversion 服务器上的 pre-commit Hook 来执行我们的编码标准的能力。

使用 Git,您只有客户端上的预提交 Hook cannot be enforced以任何方式。更糟糕的是,我们有开发人员使用所有三个主要操作系统,因此适用于 Linux 或 OS X 的预提交 Hook 不会自动适用于 Windows。

方法是在服务器上实现一个pre-receive 钩子(Hook),但解决方案并不像看起来那么简单:

想象一下,开发人员做了 20 次提交并想要推送它们。我知道的所有预提交和预接收 Hook ( 12 )只检查单个提交,这最终会失败并阻止推送。现在开发人员修复了问题并进行了另一次提交,并尝试再次推送。由于钩子(Hook)检查单个提交,它会再次失败。

所以我们需要一个pre-receive 钩子(Hook)来生成所有提交中所有更改文件的列表,这些文件将被推送并仅在当前状态下运行 phpcs。

这样的钩子(Hook)脚本已经存在了吗?在哪里?

编辑: 似乎有一个 script that creates that list of files - 不幸的是在 Python 中,但是可以移植。我仍然对使用 PHPCS 的预制解决方案感兴趣 :)

最佳答案

我宁愿不等待服务器端 Hook 来控制推送。

您可以设置一个中间存储库,它会非常定期地获取每个开发人员的分支并审核每个新提交,如果提交不符合某些预定义的标准,则发送电子邮件。

您也可以在中央存储库上设置预接收 Hook ,但至少开发人员会更快地意识到潜在的问题。

关于php - Git:使用 PHP_CodeSniffer 预接收 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com