如何在 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`
在 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`