查询TFS中变更集范围的历史记录以获取特定信息

本文关键字:记录 获取 信息 历史 TFS 范围 查询 | 更新日期: 2023-09-27 18:28:31

我正试图使用C#和TFS来获取TFS中变更集注释的发布日志。

我有这个代码:

        const string tfsURL = "http://dev.ger.test.com:8080/tfs";
        var tpc = new TfsTeamProjectCollection(new Uri(tfsURL));
        VersionControlServer vcs = (VersionControlServer)tpc.GetService(typeof(VersionControlServer));
        var tp = vcs.GetTeamProject(@"MyCollection");
        var path = tp.ServerItem;
        path += @"/Project/Subproject";
        var q = vcs.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, null, null, null, 1, true, true, false, false);
        foreach (var item in q)
        {
            Console.WriteLine(item);
            Logger(item.ToString(), false);
        }

这是有效的,但它只返回最新的变更集和该变更集中的所有信息。

所以我的问题是:

如何在queryhistory中指定一个变更集范围,如VersionSpec.1000到VersionSpec.Latest?

如何操作foreach循环中的项以显示类似项的指定信息。议论

非常感谢您的帮助!

编辑:我将QueryHistory编辑为

var q = vcs.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, null, new ChangesetVersionSpec(23618), VersionSpec.Latest, 1, true, true, false, false);

不幸的是,这并没有改变什么。

查询TFS中变更集范围的历史记录以获取特定信息

应该是这样的:

var changes = vcs.QueryHistory(
    path, 
    VersionSpec.Latest, 
    0, 
    RecursionType.Full, 
    null, 
    VersionSpec.ParseSingleSpec("C100", null), // starting from changeset 100
    VersionSpec.ParseSingleSpec("C200", null), // ending with changeset 200
    int.MaxValue, 
    true, 
    false);
 foreach(Changeset change in changes)
 {
     Console.WriteLine("{0} {1}", change.ChangesetId, change.Comment);
 }

它将为您提供变更集100到200,并列出它们的ID和注释