使用c#获取Changeset及其在TFS上的所有更改 [英] Get Changeset and all it's changes on TFS using c#

查看:40
本文介绍了使用c#获取Changeset及其在TFS上的所有更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过它的变更集来获取特定的变更集.这是工作.问题是我无法使文件受到该变更集的影响.

  Changeset changeset = GetChangeset(new Uri("tfs path"),10918);foreach(changeset.Changes中的var w){Console.WriteLine("Type:" + w.ChangeType);Console.WriteLine("Comment:" + changeset.Comment);Console.WriteLine("Date:" + changeset.CreationDate);foreach(changeset.WorkItems中的y){Console.WriteLine("Name:" + y.Title + y.Type);}}私有静态Changeset GetChangeset(Uri serveruri,int changesetid){var tfs = new TfsTeamProjectCollection(serveruri);var svc = tfs.GetService< VersionControlServer>();var changeset = svc.GetChangeset(changesetid);返回变更集;} 

上面的代码正在工作.我可以将变更集作为对象并显示 ChangeType CreationDate Comment ,但是我无法获得与变更关联的项目.例如,我编辑了 Program.cs .因此,在该变更集下应该是可见的.

任何建议将不胜感激.

谢谢!

解决方案

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

以您的情况为例: w.Item.ServerItem ->这是文件的Serverpath,例如'$/A/B/C.txt'

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

下载它

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!

解决方案

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")

这篇关于使用c#获取Changeset及其在TFS上的所有更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆