查询历史记录,了解特定信息的TFS中的一系列变更集

时间:2014-10-29 22:18:37

标签: c# tfs

我正在尝试使用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);
        }

有效,但它只返回最新的变更集以及此变更集内的所有信息。

所以我的问题是:

如何在查询历史中指定一个变更集范围,例如VersionSpec.1000到VersionSpec.Latest?

如何操作foreach循环中的项目以显示item.Comment?

等指定信息

非常感谢任何帮助!

编辑:我将QueryHistory编辑为

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

不幸的是没有改变。

1 个答案:

答案 0 :(得分:6)

它应该是这样的:

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和注释