Get Changeset and all it's changes on TFS usin

2019-02-12 13:26发布

I am trying to get a specific changeset by it's changesetid. It is working. The problem is I can't get the files affected by that changeset.

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;
}

The above code is working. I can get the changeset as an object and display the ChangeType, CreationDate and Comment but I can't get the items associated with the change. For example, I edited the Program.cs. So it should be visible under that changeset.

Any suggestion would be gladly appreciated.

Thanks!

标签: c# tfs
1条回答
可以哭但决不认输i
2楼-- · 2019-02-12 13:50

You are already iterating over the Changes in your code. The affected File is in the Item property of the Change type.

in your case: w.Item.ServerItem --> This is the Serverpath of the File like '$/A/B/C.txt'

You can download it by using w.Item.DownloadFile(@"C:\local.txt")

查看更多
登录 后发表回答