我一直在使用TFS API来获取与特定月份之间的所有变更集相关的所有工作项。然后通过changeset对象,我使用了commiterDisplaName属性来过滤掉特定的一组用户说" foo1,foo2,foo3"。
由于它首先提取所有变更集然后通过循环尝试通过用户名过滤掉每个变更集的工作项,因此耗费大量时间。
在TFS API中是否有一种方法可以直接获取多个用户完成的更改集? 我已经通过MSDN搜索了这个,但到目前为止还没有运气。
这肯定会减少通过用户名的循环过滤,这非常耗时。
感谢。
答案 0 :(得分:1)
VersionControlServer.QueryHistory的重载为signature
public IEnumerable QueryHistory(
string path,
VersionSpec version,
int deletionId,
RecursionType recursion,
string user,
VersionSpec versionFrom,
VersionSpec versionTo,
int maxCount,
bool includeChanges,
bool slotMode
)
注意第5个参数用户。因此,您可以将特定用户的更改集查询为
var changesets = vcServer.QueryHistory(
"<your local path>", VersionSpec.Latest, 0, RecursionType.Full,
@"domain\user", null, null, 10, false, false);
但是,此user
参数不支持多个用户。我不认为任何其他TFS API也支持多个用户。因此,您可以遍历用户列表并检索每个用户的chagnesets。还有一个循环,但与查询所有变更集相比,它应该快得多。