使用c#获取Changeset及其在TFS上的所有更改

时间:2014-02-04 06:49:04

标签: c# tfs

我试图通过它的变化来获得特定的变更集。这是工作。问题是我无法获得受该变更集影响的文件。

Changeset changeset = GetChangeset(new Uri("tfs path"), 10918);

foreach (var w in changeset.Changes)
{
    Console.WriteLine("Type:" + w.ChangeType);
    Console.WriteLine("Comment:" + changeset.Comment);
    Console.WriteLine("Date:" + changeset.CreationDate);

    foreach (var y in changeset.WorkItems)
    {
        Console.WriteLine("Name:" + y.Title + y.Type);
    }
}

private static Changeset GetChangeset(Uri serveruri, int changesetid)
{
    var tfs = new TfsTeamProjectCollection(serveruri);
    var svc = tfs.GetService<VersionControlServer>();
    var changeset = svc.GetChangeset(changesetid);

    return changeset;
}

以上代码正常运行。我可以将变更集作为对象获取并显示ChangeTypeCreationDateComment,但我无法获取与更改相关联的项目。例如,我编辑了Program.cs。所以它应该在变更集下可见。

任何建议都会很高兴。

谢谢!

1 个答案:

答案 0 :(得分:10)

您已经在迭代代码中的更改。受影响的文件位于Item类型的Change属性中。

在你的情况下:w.Item.ServerItem - &gt;这是文件的服务器路径,如'$/A/B/C.txt'

您可以使用w.Item.DownloadFile(@"C:\local.txt")

下载