svn - 用于代码增量静态分析的工具?

标签 svn code-analysis static-analysis sonarqube

是否有任何免费的工具允许对代码进行增量静态分析(对于 SVN,最好是 Git)?目前我们正在使用 Sonar(我认为是 2.12?),但问题是它需要分析我们项目中的所有代码的时间是 40-60 分钟。我们需要乘以它,因为我们有几个分支处理不同的子项目。

这就是为什么我正在寻找一种工具,它可以仅分析最新提交的代码(据我所知,Sonar 不支持)或仅分析过去 X 小时/天/任何时间修改过的代码。

我找到了用于 Sonar 的 Cutoff Plugin,据说它可以满足我的要求(仅检查文件中在某个日期后修改过的代码)但是:

  • 我还需要检查它是否有效
  • 检查它是否支持动态日期更改(因此它只会考虑来自即最后一天的代码,而不是我必须每天手动更改排除日期)。
  • 它似乎没有得到很好的支持(2010 年的最后一次更改,它仍然是 0.1 版)

  • 如果它只检查上次提交的代码,那将是完美的,但我在任何地方都没有看到。

    还有一个附带问题:在每次提交后运行分析(即使用 hudson sonar 插件)是一件好事还是应该避免?在我的最后一个团队中,我们有这样的 Sonar 运行,如果我们“破坏它”(向代码添加主要/关键),我们会收到一封即时电子邮件。这非常方便,因为我们知道谁有错(基于提交的信息)。或者我们应该不那么频繁地分析它(比如说每周一次)?在这种情况下,我将不得不检查 Sonar 是否能够说出谁提交了有问题的代码。

    最佳答案

    很少,特别是因为许多工具/规则依赖于遍历可能的堆栈来限制误报的数量。因此,一个程序集的更改也需要重新评估调用程序集,这并不像从外部看起来那么简单。

    要加速静态分析,请考虑投资内存磁盘或 SSD 来存储源代码和二进制文件。使用多核机器,有足够的内存并尽可能运行这些工具的 x64 版本。许多这些工具首先是 I/O,然后是 CPU 限制。大多数改进都可以通过减少系统的延迟和吞吐量以及所需的交换量(通过拥有足够的内存)来进一步减少 I/O 来实现。

    您还可以在构建服务器上使用伙伴构建/验证搁置集构建来将构建时间卸载到可以在开发人员之间共享的不同机器上。

    关于svn - 用于代码增量静态分析的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806445/

    相关文章:

    svn - 如何在没有网络访问权限的情况下将 'svn export' *未更改*当前版本?

    eclipse - 忽略 Eclipse 工作区的模式

    visual-studio - 使用Visual Studio 2008代码分析,良好的可维护性指标是什么?

    java - Findbugs 报告一个不兼容的位掩码错误,但我不知道如何

    WordPress 站点作为 Subversion 工作副本

    git - 通过哈希查找 svn 内容

    algorithm - 什么是 "naive"算法,什么是 "closed - form"解法?

    visual-c++ - 如何将 GetProfileBinary 的结果保存到智能指针中?

    c - 使用 Oclint 的 Npath 和圈复杂度

    java - SonarQube 与 FindBugs 插件