如何在TFS中查询文件夹以向我显示每个对象的最新ChangeSet?

时间:2011-07-15 13:13:28

标签: tfs changeset

目前,我们的DBA需要为需要部署的任何脚本/存储过程/函数提供TFS变更集编号。我的TFS项目中有一个包含所有存储过程的文件夹,我想运行一个查询,列出该文件夹中的每个对象和最新的变更集。我正在使用VS2010 Team Explorer和TFS Server 2008(我相信),并且很乐意在PowerShell或其他工具中编写脚本,但不知道从哪里开始。有人可以给我一些方向吗?

1 个答案:

答案 0 :(得分:4)

TFS有很多可扩展点,可以像这样运行查询。如果是我,我只需使用tf.exe命令行客户端。例如:

tf properties $/Path/To/Folder -recursive

这将显示给定文件夹下的每个文件的最新变更集(以及其他信息。)

虽然命令行客户端的输出格式良好且易于解析,但您仍可能更喜欢以编程方式执行此操作。您可以使用功能非常强大的.NET API从服务器进行查询。您需要调用VersionControlServer.GetItems方法。例如:

ItemSet items = vcs.GetItems(@"$/Path/To/Folder", RecursionType.Full);

如果还没有,你应该看看TFS 2008 Power Tools,其中包括TFS Power Shell Extensions。我的powershell-fu很弱,但我认为Power Shell中的上述内容类似于:

$tfs = get-tfs http://yourserver:8080/tfs/YourCollection
$tfs.VCS.GetItems('$/Path/To/Folder', $tfs.RecursionType::Full)