6

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

我意识到这是其他人已经在这里提出的问题的重复 -查看作为 TFS 中工作项的一部分而更改的所有文件的列表,但它没有得到答复,我一直在断断续续地寻找这个尽管。

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

有谁知道实现这一目标的方法?提前感谢您的任何帮助或指导。

4

3 回答 3

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 
}

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

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

于 2010-02-26T20:24:54.450 回答
1

我刚刚找到了适用于 VS 2010 的 Scrum Power Tools 插件,它通过在 VSS 中单击按钮来执行此操作,已安装并且可以正常工作。http://visualstudiogallery.msdn.microsoft.com/3f261226-530e-4e9c-b7d7-451c2f77f262

我只是想让 powershell 版本 2010 工作。 http://msdn.microsoft.com/en-us/vstudio/bb980963

第一个问题是默认情况下没有安装 pwoer shell 选项,使用自定义安装并选择该选项。完成后,TFS powertools 2010 菜单中有一个 powershell 提示符,这些命令仅在其中起作用。

获取服务器我必须用 URL http://tfsserver:8080/tfs替换 njtfs并删除 -all。脚本仍然失败。

最终我需要一份详细报告,列出:源“工作项”“更改集”

例如:
xyz.cs '工作项 1' 'C397'
xyz.cs '工作项 2' 'C399'

最终我必须确定工作项 1 依赖于工作项 2。我还必须回溯到工作项 1 以检查状态。

有人可以协助编写 2010 版脚本吗?我以前从未写过PS。

于 2011-12-01T04:58:51.460 回答
1

我需要完全相同的东西,我使用 TFS API 为自己编写了一个 TFS 实用程序。它允许您查看随时间触发的工作项的所有更改,以及更多内容。我已经把它放在codeplex上。您可以从以下网址获取它:
tfshelper.codeplex.com

于 2011-12-27T12:47:44.987 回答