2012-02-19 47 views
4

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

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

+0

是否想要删除/销毁旧版本或将其从全局列表中删除? – 2012-02-22 02:24:42

+0

@DuatLe只是删除。 – KMoraz 2012-02-22 06:56:04

回答

3

TFS全球名单确实得到臃肿,并且它确实阻碍表现。我们自己也有同样的问题。

我建议做以下几点:

  1. 更改工作项类型定义,包括允许现有值依赖全球名单上建立的列表WIT领域规则(例如“在Bugs中的Build中找到)。
  2. 定期(手动或计划)删除旧版本。您可以查看每个构建定义的保留策略。删除不被保留的构建是安全的(默认情况下每个定义最后10个)。我建议自动执行此操作并查询TFS数据库以确定哪些构建可以安全地删除。
  3. 或者,您可以查看构建的放置位置并解析目录结果(即保留存储在那里的构建)。
+0

我们目前正在手动删除旧版本。然而,查询哪些构建要保留是一种痛苦。我正在寻找一种方法来自动执行此过程。 – KMoraz 2012-02-21 22:38:14

+0

我们使用每日构建进行测试,并且CI构建仅告知开发者是否已破坏构建。这样就不需要将工作项目链接到CI构建,所以它们被自动删除,并且我们每天只有一个或两个构建(而不是20-30)生成标签。 – 2012-02-25 19:54:14

1

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

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

长项目列表不应该有任何性能问题。从下拉列表中选择一个巨大的列表会让人讨厌......但这就是TFS野兽的本质。它可以保存各种信息,以便随着时间推移衡量指标。

查看Tfs_Analysis多维数据集或用于构建的事务表。你会发现你曾经运行的每一个构建的数据行。 (TFS 2008在删除构建时从其事务表中删除了行...在TFS 2010中保留了数据并在数据库中设置了“IsDeleted”标志,因此数据永远保留在那里)

1

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

但是,由于您可能不需要/不需要他们的标签,因此可以缓解CI的大部分积聚。每个构建定义可以被编辑,以在构建开始时停止标记源代码控制。 (我不能提供完整的说明,因为我现在离我的电脑很远)