如何在TFS中查询文件夹以显示每个对象的最新更改集?
目前,我们的DBA要求任何需要部署的脚本/存储过程/函数使用TFS变更集编号。我在TFS项目中有一个文件夹,其中包含我所有的存储过程,我想运行一个查询,列出该文件夹中的每个对象和最新的变更集。我将VS2010团队资源管理器与TFS Server 2008一起使用(我相信),我很乐意在PowerShell或其他工具中编写脚本,但不知道从何开始。有人能为我提供一些指导吗?TFS有很多扩展点,使运行这样的查询成为可能。如果是我,我只需要使用如何在TFS中查询文件夹以显示每个对象的最新更改集?,tfs,changeset,Tfs,Changeset,目前,我们的DBA要求任何需要部署的脚本/存储过程/函数使用TFS变更集编号。我在TFS项目中有一个文件夹,其中包含我所有的存储过程,我想运行一个查询,列出该文件夹中的每个对象和最新的变更集。我将VS2010团队资源管理器与TFS Server 2008一起使用(我相信),我很乐意在PowerShell或其他工具中编写脚本,但不知道从何开始。有人能为我提供一些指导吗?TFS有很多扩展点,使运行这样的查询成为可能。如果是我,我只需要使用tf.exe命令行客户端。例如: tf properties
tf.exe
命令行客户端。例如:
tf properties $/Path/To/Folder -recursive
ItemSet items = vcs.GetItems(@"$/Path/To/Folder", RecursionType.Full);
这将显示给定文件夹下每个文件的最新更改集(以及其他信息)
虽然命令行客户机的输出格式良好且易于解析,但您可能仍然更喜欢使用更具编程性的方式。您可以使用非常强大的.NETAPI从服务器进行查询。您需要调用该方法。例如:
tf properties $/Path/To/Folder -recursive
ItemSet items = vcs.GetItems(@"$/Path/To/Folder", RecursionType.Full);
如果您还没有,您应该看看,其中包括TFS Power Shell扩展。我的powershell fu很弱,但我认为Power Shell中的上述内容类似于:
$tfs = get-tfs http://yourserver:8080/tfs/YourCollection
$tfs.VCS.GetItems('$/Path/To/Folder', $tfs.RecursionType::Full)
太好了,谢谢!有没有办法将输出通过管道传输到文本文件?我只是在命令提示符窗口中增加了缓冲区,并使用了老式的“标记/复制/粘贴”