如何在 TFS Web 界面中查询变更集

How to Query for Changesets in TFS Web interface

在 TFS 网络界面中,我可以查询具有各种 link 类型的项目:

但是,虽然变更集在 TFS 中是合法且不同的 link 类型,但未包含在该列表中:

使用 Web 界面,如何查询包含或不包含 link 类型变更集的工作项?

你是对的。 Web 界面上默认的 TFS 工作项查询编辑器中没有变更集 LINKS 字段。因为如果您执行查询并包含外部 link 计数 >0,这实际上会给您所有具有与之关联的变更集的工作项。

另一种方法是使用TFS API来实现。建议您使用 Buck 在这个很棒的博客中提供的方式:Listing the work items associated with changesets for a path

更多方法请看这个类似问题:How can I query work items and their linked changesets in TFS?

您还可以使用 REST API 查询与更改关联的工作项。

1- 做一个查询并包含 External Link Count > 0(这会给你 带有外部 link 的工作项列表,其中还包括 linked 到 变更集。)

2- 列出工作项 IDs 并使用下面的 PowerShell 脚本示例来 过滤与变更集关联的工作项。 (您也可以将列表导出到 .csv 文件)

$baseUrl = "http://server:8080/tfs/CollectionLC/_apis/wit/workitems?ids=75,76,77,78&"+"$"+"expand=relations&api-version=1.0"            
$workitems = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential).value|where({$_.relations.attributes.name -eq 'Fixed in Changeset'})

$WorkitemResults = @()

foreach($workitem in $workitems){

    $customObject = new-object PSObject -property @{
          "workitemId" = $workitem.id
          "workitemTitle" = $workitem.fields.'System.Title'
          "State" = $workitem.fields.'System.State'
          "CreatedBy" = $workitem.fields.'System.CreatedBy'
          "Project" = $workitem.fields.'System.TeamProject'
          "AssignedTo" = $workitem.fields.'System.AssignedTo'
        } 

    $workitemResults += $customObject       
}

$workitemResults | Select `
                workitemId, 
                workitemTitle, 
                Project,
                State,
                CreatedBy,
                AssignedTo #|export-csv -Path C:\WorkitemsWithChangesets.csv -NoTypeInformation`