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

Svn 用于代码增量静态分析的工具?,svn,code-analysis,static-analysis,sonarqube,Svn,Code Analysis,Static Analysis,Sonarqube,是否有任何免费的工具允许对代码进行增量静态分析(对于SVN,最好是Git)?目前我们正在使用声纳(我想是2.12?),但问题是它需要40-60分钟的时间来分析我们项目中的所有代码。我们需要乘以它,因为我们有几个分支处理不同的子项目 这就是为什么我在寻找一个工具,它可以只分析最新提交的代码(据我所知,Sonar不支持),或者只分析在过去X小时/天/任何时间修改过的代码 我找到了Sonar的截断插件,该插件应该满足我的要求(只检查文件中在某个日期后修改的代码),但是: 我还需要检查它是否有效 检查它

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

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

我找到了Sonar的截断插件,该插件应该满足我的要求(只检查文件中在某个日期后修改的代码),但是:

  • 我还需要检查它是否有效
  • 检查它是否支持动态日期更改(因此它将只考虑最后一天的代码,而不是我必须每天手动更改排除日期)
  • 它似乎没有得到很好的支持(上一次更改是在2010年,现在仍然是0.1版)
  • 如果它只检查上一次提交的代码,那将是完美的,但我在任何地方都没有看到


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

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

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


    您还可以在构建服务器上使用buddy build/validate shelve set build将构建时间卸载到不同的机器上,这些机器可以在开发人员之间共享。

    还有用于静态分析的工具,如:

  • 很有可能你会发现它是声纳的有用替代品


    您没有提到是否使用持续集成工具。您可能需要启动并运行它,以便使用这些工具中的任何一种进行检查。

    我意识到我来晚了,但还有一个工具可能与您相关:


    Teamscale连接到您的存储库(例如Git或SVN),并在每次提交之后增量分析您的代码。这样,您几乎在提交后立即得到有关新代码/修复代码问题的反馈。您还可以查看代码的完整历史记录、黑名单误报等等。(完全披露:我是一名Teamscale开发人员)

    你在寻找免费工具吗?啊,是的,我忘了提到:它必须是免费的。显然不一定要完美,但必须是免费的。啊,希望我能得到你所说的所有/任何装备:)现在,我必须满足于每天使用截断插件的构建。我想总比什么都没有好。试着总结一下,如果你不投资于这些东西,你会惊讶地发现,你能以如此快的速度节省时间来进行改进。是的,我们之前使用了所有3个,但现在改用声纳来完成所有的工作。此外,作为一个CI,我们正在使用Hudson。那么,也许你只需要减少运行检查的数量?是的,我已经做了两项改进:首先,我在Hudson不运行单独的sonar作业,这将首先构建整个应用CI样式,然后再次为sonar构建,但我在一个CI之后立即开始构建sonar。然后,我不必运行测试,只分析最新的更改。整个过程现在大约10分钟,我想我会得到更好的结果。