【问题标题】:Use source control history with nDepend to create trend使用带有 nDepend 的源代码控制历史来创建趋势
【发布时间】:2020-08-26 13:52:23
【问题描述】:

我们想在我们的源代码控制 (git) 中选择时间点来生成趋势指标。

我们正在对 nDepend 进行试用,以确定它对我们拥有 15 年以上历史的大型代码库的价值。

目前采取的步骤是:

  1. 签出给定的变更集
  2. 构建/分析
  3. 转到 1,直到分析完所有选定的变更集

我们看到的问题是,每次签出代码时,都是一个全新的开始,包括 nDepend 配置。因此,我们有一系列完全独立的分析集,它们之间没有趋势。

这是可以(轻松)完成的事情吗?

【问题讨论】:

    标签: version-control ndepend


    【解决方案1】:

    我想出了一个解决方案:

    1. 更新 NDepend 设置以将 NDepend 项目附加到 .suo 文件
    2. 更新 NDepend 设置以“始终”记录趋势指标
    3. 签出初始变更集:git checkout {changesetash}
    4. 构建解决方案
    5. 将新的 NDepend 项目附加到当前解决方案
    6. 为新的 NDepend 项目运行分析
    7. 将 NDepend 项目文件和 NDependOut 文件夹移动到解决方案的 .vs 文件夹中
    8. 编辑 NDepend 项目文件,将 .sln 文件的路径从“.”调整为到“..”

    此时,为您要捕获分析的每个变更集重复以下操作:

    1. 签出下一个变更集:git checkout {changesetash}
    2. 构建解决方案
    3. 运行 NDepend 分析

    希望我没有错过任何东西。

    【讨论】:

      【解决方案2】:

      希望您可以使用NDepend.API 自动执行这些步骤中的大部分。您不需要在自动化过程中将 NDepend 项目附加到 sln,只需使用方法 SetIDEFile() 从 NDepend 项目中引用您的解决方案:

      var ndependServicesProvider = new NDependServicesProvider();
      var projectManager = ndependServicesProvider.ProjectManager;
      project.CodeToAnalyze.SetIDEFiles(new [] { new 
         IDEFile("C:\File.sln".ToAbsoluteFilePath()","-test") } );
      IAnalysisResult analysisResult = project.RunAnalysis();
      

      要聚合趋势指标,您可以使用NDepend.Trend 命名空间并从trend related OSS power tools 中获取灵感:过时的日志趋势值

      【讨论】:

      • 有趣!可以肯定的是,您是说我会创建一个独立的程序来运行您提供的独立于 Visual Studio IDE 的代码吗?
      • 是的,请阅读有关 NDepend.API 的链接来解释这一切
      猜你喜欢
      • 2012-03-03
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多