TFS API-缓慢的foreach变更集迭代
本文关键字:迭代 foreach API- 缓慢 TFS | 更新日期: 2023-09-27 17:58:46
问题背景:
我正在使用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分钟才能生成每个文件的changesetID列表。
我可以改进吗?如果是,怎么办?
花费这么长时间的问题是代码中的"True":
var changesetList=tfsDevItem.VersionControlServer.QueryHistory(tfsDevItems.ServerItem,VersionSpec.Restest,0,RecursionType.None,null,versionFrom,versionTo,Int32.MaxValue,true
,false);
您只需要变更集编号,所以在那里传递"false"。
该参数可用于填充变更集的"Changes"属性。这些变更包含MergeSources和ChangeType等等。