这些工作项(以及链接的变更集)通常容易出错。 因此,团队代码审查的良好候选人,应该更加关注。
我已经检查了Work Item Query Language and Client Object Model和WIQL syntax for Link Query,但仍无法有效地获取这些工作项(包含更改集的数量)。
有没有办法像这样查询(这里应该是WIQL,SQL语法只用于演示)?
SELECT [Source].[System.Id], COUNT(1) AS Changesets FROM WorkItemLinks
WHERE [Source].[System.WorkItemType] = 'Bug'
AND [System.Links.LinkType] = 'Changeset'
GROUP BY [Source].[System.Id]
HAVING Changesets > 5
或者是否有一种使用API的有效方法,不需要读取每个工作项来获取计数?
或者只能通过直接在数据库上执行SQL查询来实现(like this)?
或者,我们是否可以使用默认情况下(来自VS IDE或API)支持的CurrentRelatedLinkCount / ExternalLinkCount / HyperLinkCount / RelatedLinkCount作为查询字段?
答案 0 :(得分:3)
您可以使用ExternalLinkCount进行变更集链接。
答案 1 :(得分:0)
没有您的表架构很难。但我想你正试图这样做:
SELECT [Source].[System.Id], COUNT(1) AS Changesets FROM WorkItemLinks
WHERE [Source].[System.WorkItemType] = 'Bug'
AND [System.Links.LinkType] = 'Changeset'
GROUP BY [Source].[System.Id]
HAVING COUNT(1) > 5
我是对的吗?
答案 2 :(得分:0)
报告会执行此操作 - 报表生成器支持SQL。
答案 3 :(得分:0)
如果安装了SQL Server Analysis Services,则可以查询关系。以下是在Excel中执行此操作的方法:
这将允许您查询工作项和变更集之间的关系。如果您将一个显示为Row字段而另一个显示为Column字段,然后获取每行的小计,这将为您提供每个工作项的变更集计数(以及每个变更集的工作项计数)。
但请注意,在TFS中的一个非常大的项目上运行此查询可能会非常昂贵,因此您应该针对一小部分变更集和一小部分工作项执行此操作。要执行此操作,请注意要过滤更改集的日期,您需要使用日期维度,而要过滤工作项的日期,您需要使用其中一个工作项字段(创建日期,更改日期等)
您可以修改OLAP多维数据集,以便通过从仓库更改其ETL过程将此信息放入事实表中,在这种情况下,您只能查询变更集计数。