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

Ste*_*ser 2 c++ git mercurial coding-style

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

在一个单独的脚本中

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

建设时

  • 在构建之前将确保只构建兼容代码.
  • 可能会减慢构建时间.
  • 强制用户使用此工具.

作为预先提交的钩子

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

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

Von*_*onC 5

你可以在一个pre-commit钩子(在git中)设置控件,但是:

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

所以在DVCS中,最好的地方是pre-receive服务器端钩子,即在服务器上被认为是托管"祝福"的回购(每个人都使用的)

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

  • 版本控制策略(请参阅此gist,禁止删除没有a的分支/,不允许在没有a的分支上禁止非快进/,不允许删除没有a的分支,禁止不/推送未注释的标记)
  • 启动外部流程(如单元测试)