好的,这是场景:一个开发团队希望确保所有新代码都符合定义的编码标准,并且在接受提交之前所有单元测试都通过。这是诀窍,所有测试都需要在专用测试机器上运行,我们无权修改 git 服务器,因此必须在每台开发机器上使用本地提交挂钩来完成。
虽然规格非常严格(例如,我们不会切换到 windows 或 subversion),但这是一个现实世界的问题,因此如果您有一个几乎适合的解决方案,那么就有一定的灵活性。
- 我们正在使用 Git 和 *nix。
- 更新后的代码需要发送到另一台服务器来运行测试套件。
- 需要提供修改文件的列表以确保它们符合编码标准。
- 它是一个相当大的代码库,因此我们应该发送最少的必要信息以确保代码库的相同副本。
- 如果测试失败,则需要显示一条带有错误的消息,并且应该阻止提交。
--no-verify
假设我们信任我们的开发团队,并且允许使用选项绕过测试是可以的。
问题:让测试服务器与本地环境同步以运行测试的最佳方法是什么?某种哈希到哈希与新提交的 git 补丁匹配?完全跳过 Git,只做一个 rsync?完全是别的东西吗?
2013 年8 月 7 日更新:我什至提到了远程仓库,这让我自责。关键不是阻止代码被推送到共享/远程仓库,而是防止本地提交甚至发生。在这种情况下,这是否被认为是最佳实践并不是真正的重点,因为这是特定于一个小型开发团队的,他们都想要这个确切的功能。问题是关于实现目标的最佳方式。