TFS API - 缓慢的 foreach 变更集迭代

2024-05-26

问题背景:

我正在使用 TFS api 查询 TFS 服务器上的大范围(1-600+)文件。

我从每个文件中收集其所有 ChangesetId,然后将其收集在列表中。

代码:

这是我正在使用的代码。它可以正确生成 QueryHistory 方法中指定参数的所有项目的 IEnumerable 更改集列表。

        VersionSpec versionFrom = VersionSpec.ParseSingleSpec("C1", null);

        VersionSpec versionTo = VersionSpec.Latest;

        var changesetList = tfsDevItem.VersionControlServer.QueryHistory(tfsDevItem.ServerItem, VersionSpec.Latest, 0, RecursionType.None, null, versionFrom, versionTo, Int32.MaxValue, true, false);

        item.VersionList = new List<int>();

        //*****Very slow iteration*****
        foreach (Changeset ChangesetId in changesetList)
        {
            item.VersionList.Add(ChangesetId.ChangesetId);
        }

问题:

当循环遍历 foreach 的 chagesetList 中的每个变更集时,所花费的时间是难以置信长的。例如 115 个文件需要1分钟生成每个单独文件的变更集 ID 列表。

我可以改进这个吗?如果是这样怎么办?


花费这么长时间的问题是代码中的“True”:

var ChangesetList = tfsDevItem.VersionControlServer.QueryHistory(tfsDevItem.ServerItem, VersionSpec.Latest, 0, RecursionType.None, null, versionFrom, versionTo, Int32.MaxValue,true, 错误的);

您只需要变更集编号,因此在此处传递“false”。

该参数负责填充 a 的“Changes”属性变更集 http://msdn.microsoft.com/de-de/library/microsoft.teamfoundation.versioncontrol.client.changeset.aspx. Those Changes http://msdn.microsoft.com/de-de/library/microsoft.teamfoundation.versioncontrol.client.change.aspx持有 MergeSources 和 ChangeType 等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TFS API - 缓慢的 foreach 变更集迭代 的相关文章

随机推荐

  • 如何备份/恢复corda节点?

    一旦 Corda 节点发生故障 恢复的适当流程是什么 Corda 交易仅与特定业务网络的合格节点共享 而不是与每个节点共享 因此 在恢复故障节点时 从其他节点复制数据将无法正常工作 需要从备份中恢复 但是 备份映像对于其他正确的节点并不完全
  • .m2 的 Docker 缓存在本地不起作用

    考虑这个 gitlab ci yml variables MAVEN OPTS Dmaven repo local root m2 repository cache key M2 paths root m2 repository 当直接在
  • 活动丢失后终止异步任务

    这是我的过程和问题 在此应用程序中 您单击菜单按钮 在此菜单中 您按下切换按钮 该按钮将启动异步任务 每 30 秒发出一次提示音 该任务是在选中切换时持续运行 并在取消选中时取消 只要您留在菜单窗口中 就可以启动和停止该过程 检查切换框 如
  • Git Add - 致命:添加文件失败

    我的 git cmd exe 窗口如下所示 git add NextFolder error unable to create temporary file No such file or directory error NextFolde
  • 在 Retrofit 中的 POST 请求中发送空正文

    我的 api 需要一个空的 json 主体 发出帖子请求时 如何在 Retrofit 和 Jackson 中进行设置 我尝试通过null 和空字符串 以及 但无法让它发挥作用 POST my url Call
  • ASP.NET MVC 3 身份验证/授权 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 ASP NET MVC 3 以及一般的 MVC 非常陌生 在 ASP NET Web 窗体中 我使用主体和身份进行身份验证 这是在 MVC 中推
  • Angular2:嵌套 *ngFor 导致“表达式在检查后已更改”

    我有一个 angular2 组件 my tree 我在父 my app 组件中使用它 我的应用程序 如下 Component selector my app providers template
  • html datalist元素自动建议行为

    我注意到 当您将文本字段连接到数据列表时 不同的浏览器在建议文本字段值方面有不同的行为 某些浏览器显示的条目正是以 开始您输入的内容 IE 旧版 chrome 版本 而其他显示的条目contain您作为子字符串输入的内容 firefox 较
  • C# 中两种不同类型的列表

    我目前在为客户提供购物车时遇到问题 他希望能够在 CartItems 之间添加文本 所以我想知道是否有某种方法仍然只有一个列表 我的解决方案是有两个列表 其中一个是 IList 类型 在计算购物车的重量和总体价格时会迭代 而另一个 ILis
  • 使用 useCallback 并使用先前状态作为参数设置新对象状态

    考虑这个带有自定义表单钩子的基本表单字段组件来处理输入更改 import React useState useCallback from react const useFormInputs initialState gt const val
  • Java setLocation() 事故

    我正处于创建一个程序来操作员工 客户系统的开始阶段 现在我刚刚创建了登录 GUI 但我遇到了一些问题 setLocation 方法 我将其设置为 250 250 但这使我的 GUI 高度变得非常疯狂 如果有人能够解决这个问题 我的代码如下
  • scala 中的模拟案例类:Mockito

    在我的游戏应用程序中 我打算模拟一个案例类 我可以这样做 但它创建了一个所有成员变量都为空的对象 有没有办法创建案例类的模拟对象 以便该对象可以初始化一些成员 case class User name String address Stri
  • python-click:添加修改其他参数行为的选项

    这个问题是关于click http click pocoo org 5 包裹 Click 是一个用于创建漂亮命令行的 Python 包 使用尽可能少的代码以可组合的方式进行接口 它是 命令行界面创建工具包 它具有高度可配置性 但带有开箱即用
  • 如何通过单击按钮调用 PHP 函数

    我创建了一个名为的页面functioncalling php包含两个按钮 Submit and Insert 我想测试单击按钮时执行哪个函数 我希望输出出现在同一页面上 因此 我创建了两个函数 每个按钮一个
  • 如何指定 set precision 舍入

    当流到 std 输出时 我可以指定 set precision 对双精度值进行舍入吗 ofile lt lt std setprecision 12 lt lt total run time TIME lt lt n Output 0 75
  • 使用什么比例仅在 d3 js 中的 x 轴上表示年份

    我一直在 D3 Js 中开发年份 x 轴 与收入 y 轴 的面积图 数据如下 localData Revenue 4 5 Year 2011 Revenue 5 5 Year 2010 Revenue 7 0 Year 2012 Reven
  • 如何使用模式验证空手道中的多个可能值

    我目前正在使用 Swagger 模式 它定义了多个值的枚举 我想知道如何针对我的傲慢文件做出回应 我想确保返回的响应值只是架构中指定的值之一 想想 Swagger 中的枚举 如果响应中返回了架构内数组中未定义的任何其他内容 则测试应该失败
  • 什么是“Javascript 引导加载程序”?

    我主要在Facebook的源码中看到过这个Bootloader setResourceMap bMxb7 name javascript 中的引导加载程序到底是什么 它的用途和目的是什么 Bootloader 是 Facebook 前端代码
  • 如何从Android手机获取所有音乐文件的列表

    我创建了一个扫描手机上音乐文件的应用程序 如果我扫描文件夹 它会扫描音乐文件 SD卡 音乐但当我写入时它不会扫描 mp3 文件 sdcard 它运行良好 但它在某些设备上不起作用 应用程序崩溃可能是因为该手机上不存在该路径 我该怎么办 CO
  • TFS API - 缓慢的 foreach 变更集迭代

    问题背景 我正在使用 TFS api 查询 TFS 服务器上的大范围 1 600 文件 我从每个文件中收集其所有 ChangesetId 然后将其收集在列表中 代码 这是我正在使用的代码 它可以正确生成 QueryHistory 方法中指定