【问题标题】:TFS Changeset by multiple users多个用户的 TFS 变更集
【发布时间】:2014-07-17 08:55:23
【问题描述】:

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

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

TFS API 中是否有一种方法只能让多个用户直接完成变更集? 我已经通过 MSDN 搜索了这个,但到目前为止还没有运气。

这肯定会减少通过用户名的循环过滤,这是非常耗时的。

谢谢。

【问题讨论】:

  • 如果您只是对每个循环使用基本的,那么使用 lambda 可能会有所帮助。你能发布你到目前为止的内容吗?
  • 正在使用哪个 API? VersionControlServer.QueryHistory?
  • 是的,我正在使用 VersionControlServer.QueryHistory。我正在从 QueryHistoy 方法中检索所有现有用户的特定月份的所有变更集。然后循环从 TFS 检索到的所有变更集对象以检查用户名列表,如果它们存在,那么我缓存变更集的工作项以处理更多信息。

标签: c# tfs tfs-sdk


【解决方案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 个参数 user。所以你可以查询特定用户的变更集

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

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

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多