如何在TFS中查询工作项及其链接的变更集?

Jon*_*onN 13 hyperlink changeset tfs2010 tfs-workitem

在TFS 2010中,我有包含链接变更集的工作项.我可以生成一个报告我正在寻找的工作项的查询.现在,我想查询包含链接到这些工作项的所有变更集工作项和直接链接.在查询编辑器中,我找不到任何方法来指定变更集作为链接项.是工作项目从查询唯一可能的输出?

Jos*_*hka 25

一个选项是使用TFS API,如下面的代码片段.

var projectCollection = new TfsTeamProjectCollection(
    new Uri("http://localhost:8080/tfs"),
    new UICredentialsProvider());
projectCollection.EnsureAuthenticated();
var workItemStore = projectCollection.GetService<WorkItemStore>();
var versionControlServer = projectCollection.GetService<VersionControlServer>();
var artifactProvider = versionControlServer.ArtifactProvider;
var project = workItemStore.Projects["Test01.MSFAgile.v5"];
var teamQueryFolder = project.QueryHierarchy["Team Queries"] as QueryFolder;
var query = teamQueryFolder["My Tasks"];
var queryDefinition = workItemStore.GetQueryDefinition(query.Id);
var variables = new Dictionary<string, string>
{
    {"project", query.Project.Name}
};
var workItemCollection = workItemStore.Query(
    queryDefinition.QueryText,
    variables);
foreach (WorkItem workItem in workItemCollection)
{
    Console.WriteLine("WI: {0}, Title: {1}", workItem.Id, workItem.Title);
    foreach (var changeset in
        workItem.Links
            .OfType<ExternalLink>()
            .Select(link => artifactProvider
                .GetChangeset(new Uri(link.LinkedArtifactUri))))
    {
        Console.WriteLine(
            "CS: {0}, Comment: {1}",
            changeset.ChangesetId,
            changeset.Comment);
    }
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*onN 14

我刚刚参加了网络研讨会改进开发人员和测试人员协作,我提出了我的问题.alpi.com的讲师Ken Arneson证实,通过TFS团队资源管理器中的查询编辑器无法报告更改集的链接.要访问更改集的链接,必须使用其他工具来访问"多维数据集".我还有更多要学习的东西.


小智 9

如果您执行查询并包括外部链接计数> 0,这实际上将为您提供与其关联的变更集的所有工作项.

  • 请记住,测试结果也会增加外部链接计数,因此如果您使用 TFS 执行测试,这可能不是最佳方法。 (2认同)