【问题标题】:Where to hook a coding convention script?在哪里挂钩编码约定脚本?
【发布时间】:2014-07-01 05:16:44
【问题描述】:

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

在单独的脚本中

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

构建时

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

作为预提交挂钩

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

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

【问题讨论】:

    标签: c++ git mercurial coding-style


    【解决方案1】:

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

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

    因此,在 DVCS 中,最好的位置是 pre-receive hook on the server side,即在考虑托管“祝福”存储库(每个人都在使用的存储库)的服务器上

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

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

    【讨论】:

    • 那么,您认为这是最佳做法吗?
    • @StefanWeiser 是的,在中心位置执行策略更容易维护和发展。
    猜你喜欢
    • 1970-01-01
    • 2018-07-17
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    相关资源
    最近更新 更多