在哪里挂钩编码约定脚本?

时间:2014-07-01 05:16:45

标签: c++ git mercurial coding-style

在大型团队中工作时,代码样式工具通常用于强制执行编码约定。问题不是找到这样的工具。当你执行这个工具时,更是一个问题?你什么时候执行这个工具(例如astyle)?我参与了使用前两种方法的项目。

在单独的脚本中

  • 不能干扰其他工具。
  • 用户可以控制执行脚本。
  • 未强制用户使用该工具。

构建时

  • 在构建之前将确保只构建符合规范的代码。
  • 可能会减慢构建时间。
  • 强制用户使用此工具。

作为预提交挂钩

  • 确保只提交和推送合规代码。
  • 工具中的错误未经测试进入存储库。

另一种方式我不知道......

1 个答案:

答案 0 :(得分:5)

您可以在pre-commit挂钩(在git中)设置控件,但是:

  • 你必须分发那个钩子
  • 可以绕过它(git commit --no-verify

所以在DVCS中,最好的地方是pre-receive hook on the server side,在服务器上被认为是托管“祝福”的回购(每个人都使用的那些)

您可以使用它来强制执行所有类型的政策:

  • 版本控制策略(请参阅this gist,不允许删除没有/的分支,禁止在没有/的分支上禁止非快进,禁止删除没有/的分支,禁止推送未注释的标签)
  • 启动外部流程(例如unit tests