听起来像是 Powershell 的工作......
function Get-TfsItem([int] $workItemNumber)
{
Get-TfsServer njtfs -all |
foreach { $_.wit.GetWorkItem($workItemNumber) } |
foreach { $_.Links } |
foreach { ([regex]'vstfs:///VersionControl/Changeset/(\d+)').matches($_.LinkedArtifactUri) } |
foreach { $_.groups[1].value } |
Get-TfsChangeset |
Select-TfsItem |
Sort Path -Unique
}
前几行有点难看。我们必须直接访问 Web 服务 API,因为 TFS cmdlet 不涵盖错误跟踪系统。我们返回的对象需要一些正则表达式的爱才能完成我们需要的操作。一遍又一遍地“foreach”管道是一个不幸的 Powershell 习惯用法,当您将一个不友好的 API 与一个蹩脚的投影运算符配对时,就会出现这种习惯用法。(我个人使用我自己的替代品,但你不能依赖它。)
如果我的TFS Power Cmdlet已安装并完成他们的工作,最后 3 行应该是不言自明的。