一种在TFS 2008中找出workItem或chgsets组的所有受影响文件的方法?

Bil*_*ole 6 tfs workitem tfs2008 changeset

我正试图找出一种方法来找出哪些文件受到TFS 2008中工作项的影响.

我意识到这是一个已经被其他人问过的问题的重复 - 查看作为TFS中的工作项目的一部分而更改的所有文件的列表,但是它没有得到答复,我一直都在寻找这个而.

据我所知,可以查看工作项的链接选项卡,然后查看每个更改集以查看已更改的文件.但是,工作项很可能最终会有许多与之相关的变更集,我想查看作为工作项的一部分修改的文件,但我觉得如果我失去一两个文件的可能性非常高必须依靠单独查看100多个变更集中的每一个.

有谁知道这样做的方法?在此先感谢任何帮助或指导.

Ric*_*erg 3

听起来像是 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 
}
Run Code Online (Sandbox Code Playgroud)

前几行有点难看。我们必须直接访问 Web 服务 API,因为 TFS cmdlet 不涵盖错误跟踪系统。我们取回的对象需要一些正则表达式的爱,然后它们才会做我们需要的事情。一遍又一遍地通过管道传递到“foreach”是一种不幸的 Powershell 惯用法,当您将不友好的 API 与蹩脚的投影运算符配合时,就会出现这种情况。(我个人使用我自己的替代品,但你不能依赖它。)

如果我的TFS Power Cmdlet已安装并完成其工作,最后 3 行应该是不言自明的。