多个用户的TFS变更集

本文关键字:TFS 用户 | 更新日期: 2023-09-27 18:05:25

我一直在使用TFS API来获取特定月份之间与所有更改集相关的所有工作项。然后通过变更集对象,我使用commiterDisplaName属性过滤出特定的用户组,例如"foo1,foo2,foo3"。

这是非常耗时的,因为它首先提取所有的更改集,然后通过循环尝试通过用户的名称过滤出每个更改集的工作项。

在TFS API中是否有一种方法,我只能直接获得多个用户完成的更改集?我已经在MSDN上搜索了这个,但是到现在还没有找到这个。

这肯定会减少通过用户名进行循环过滤的时间。

谢谢。

多个用户的TFS变更集

VersionControlServer。QueryHistory有一个签名过载

public IEnumerable QueryHistory(
    string path,
    VersionSpec version,
    int deletionId,
    RecursionType recursion,
    string user,
    VersionSpec versionFrom,
    VersionSpec versionTo,
    int maxCount,
    bool includeChanges,
    bool slotMode
)

注意第五个参数user。因此,您可以查询特定用户的更改集

var changesets = vcServer.QueryHistory(
    "<your local path>", VersionSpec.Latest, 0, RecursionType.Full,
    @"domain'user", null, null, 10, false, false);

但是,这个user参数不支持多用户。我也不认为其他的TFS API支持多用户。因此,您可以遍历用户列表并检索每个用户的变更集。这仍然是一个循环,但它应该比查询所有的更改集快得多。