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

Ger*_*ald 10 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;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码正在运行.我可以得到变更为对象并显示ChangeType,CreationDateComment,但我不能获得与变化相关的项目.例如,我编辑了Program.cs.所以它应该在变更集下可见.

任何建议都会很高兴.

谢谢!

Sco*_*rdo 10

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

在你的情况下:w.Item.ServerItem- >这是文件的Serverpath'$/A/B/C.txt'

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