如何查询具有太多更改集的工作项

时间:2012-04-14 15:36:37

标签: tfs tfs2010 changeset workitem

这些工作项(以及链接的变更集)通常容易出错。 因此,团队代码审查的良好候选人,应该更加关注。

我已经检查了Work Item Query Language and Client Object ModelWIQL 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作为查询字段?

4 个答案:

答案 0 :(得分:3)

您可以使用ExternalLinkCount进行变更集链接。 enter image description here

答案 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中执行此操作的方法:

  1. 在Excel中连接到您的Tfs_Analysis多维数据集(数据 - >其他来源 - > Analysis Services)
  2. 选择工作项更改集字段
  3. 查找版本控制变更集维度,然后选择变更集ID
  4. 查找工作项维度并选择ID
  5. 这将允许您查询工作项和变更集之间的关系。如果您将一个显示为Row字段而另一个显示为Column字段,然后获取每行的小计,这将为您提供每个工作项的变更集计数(以及每个变更集的工作项计数)。

    但请注意,在TFS中的一个非常大的项目上运行此查询可能会非常昂贵,因此您应该针对一小部分变更集和一小部分工作项执行此操作。要执行此操作,请注意要过滤更改集的日期,您需要使用日期维度,而要过滤工作项的日期,您需要使用其中一个工作项字段(创建日期,更改日期等)

    您可以修改OLAP多维数据集,以便通过从仓库更改其ETL过程将此信息放入事实表中,在这种情况下,您只能查询变更集计数。