【问题标题】:Purging historical builds from the Global List [closed]从全局列表中清除历史构建 [关闭]
【发布时间】:2012-02-19 15:27:30
【问题描述】:

从全局列表中清除未使用或旧版本的最佳做法是什么?

目前每个 CI 构建都将其标签附加到构建列表中。随着时间的推移,列表会变得臃肿,有时我们会手动从列表中删除未使用的列表。

【问题讨论】:

  • 您想删除/销毁旧版本还是将它们从全局列表中删除?

标签: tfs continuous-integration agile alm


【解决方案1】:

TFS 全局列表确实变得臃肿,它确实影响了性能。我们自己也有同样的问题。

我建议执行以下操作:

  1. 更改工作项类型定义以包含一个 Allow Existing Values 规则,用于依赖于构建列表的全局列表的 WIT 字段(例如 Bugs 中的“Found in Build”字段) .
  2. 定期(手动或计划)删除旧版本。您可以查看每个构建定义的保留策略。删除不保留的构建是安全的(默认情况下,每个定义最后 10 个)。我确实建议自动执行此操作并查询 TFS 数据库,以确保可以安全删除哪些版本。
  3. 或者,您可以查看构建的放置位置并解析目录结果(即保留存储在那里的构建)。

【讨论】:

  • 我们目前正在手动删除旧版本。然而,查询要保留的构建是一件痛苦的事情。我正在寻找一种方法来自动化这个过程。
  • 我们使用每日构建进行测试,CI 构建只是通知开发人员是否破坏了构建。这样就无需将工作项链接到 CI 构建,因此它们会自动删除,而且我们每天只有一两个构建(而不是 20-30 个)生成标签。
【解决方案2】:

TFS 将这些标签附加到全局列表,以便工作项可以链接到特定构建。从理论上讲,您不应该从全局列表中“清理”构建列表,因为您将使任何使用这些列表项作为值的工作项处于无效状态。

还有其他列表会随着时间的推移而变得臃肿,例如“分配给”用户的列表。任何曾经是该团队项目的有效用户的人都将出于与上述相同的原因出现在该列表中。如果您删除一个用户,它会使该用户的工作项处于无效状态。当您尝试将变更集与无效工作项关联或对无效工作项执行其他操作时,您将收到错误消息。

长长的项目列表不应该有任何性能问题。从下拉列表中的巨大列表中进行选择会很烦人……但这就是 TFS 野兽的本质。它保存了各种信息,因此您可以随着时间的推移提取指标。

查看 Tfs_Analysis 多维数据集或构建事务表。您将找到您曾经运行的每个构建的数据行。 (当您删除构建时,TFS 2008 从其事务表中删除了行......在 TFS 2010 中,数据被保留,并且在数据库中设置了“IsDeleted”标志,因此数据永远保留在那里)

【讨论】:

    【解决方案3】:

    我不知道如何刷新旧的构建 - 我们还有一个无用的臃肿列表,其中包括数百个已删除的构建,这些构建使得像“发现”错误这样的字段无法使用。

    但是,对于 CI 构建,可以减轻大部分积聚,因为您可能不希望/不需要它们的标签。可以编辑每个构建定义以在构建开始时停止标记源代码控制。 (恐怕我无法提供完整的说明,因为我现在不在我的电脑旁)

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      相关资源
      最近更新 更多