为什么我的 TFS 构建标签在构建 10 次后从全局列表中消失?为什么他们的标签上有斜杠?

Why are my TFS build labels disappearing from the global list after 10 builds? And why do they have a slash in the label?

我的构建保留策略仅在 20 次成功构建后删除详细信息、放置文件夹和符号。但是,我的带有构建标签的全局列表只保留了最后 10 个构建。在我最近从 TFS 2010 升级到 TFS 2013 之前,所有构建都保留在全局列表中。

我已经确认构建没有被提前删除 - 放置文件夹中仍然包含所有构建项目。如果我使用 label sidekick,我也会看到标签,所以我认为它们仍然存在。它们似乎只是从全局列表中删除,使它们无法在工作项中进行选择。

以防万一全局列表中的项目有限制,我只是手动删除了一些旧版本。这似乎没有什么不同。

我注意到的另一件事可能无关,但仍然令人讨厌 - 构建标签现在包含斜杠,而以前没有。例如:

Build generated in TFS 2010: OS.Main_20150423.3

Build generated in TFS 2013: OS.Main/OS.Main_20150511.1

这使得在(相当长的)全局列表中查找新版本变得更加困难,所以我想去掉斜杠。构建定义仍然显示没有额外 "pre-slash" 部分的格式:

Build Number Format: $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)

是否有一些新的设置可以在我的升级过程中启用?

我仍在使用 TFS 2010 Build Controller 和 Build Agents。

构建全局列表的默认大小为 10 个项目。您可以通过更新 TFS 注册表设置来更改此值。这是执行此操作的 SQL 脚本:

DECLARE @registryUpdates typ_KeyValuePairStringTableNullable
INSERT @registryUpdates ([Key], [Value])
VALUES ('#\Service\WorkItemTracking\Settings\MaxBuildListSize\','<new value>')

EXEC prc_UpdateRegistry 1, 'Test', @registryUpdates, 1

您可以 运行 在 Tfs_Configuration 数据库中在服务器级别设置它,或者在 TFS 集合数据库中只为该集合设置它。