如何通过编程方式从TFS获取完整的文件夹历史记录?

时间:2009-06-22 12:10:24

标签: c# tfs

我在TFS源代码管理系统下有一个文件夹,假设在“$ / My Project / Branches / Dev”路径下。

最近刚搬到另一个地方,即“$ / My Project / Dev”。

现在,当我从VS中的Source Control Explorer请求其历史记录时,我获得了完整的历史记录,其中描述的移动操作只是其中一个更改集。

但是当我尝试使用TFS SDK获取历史记录时,我只能通过移动文件夹来获取最近的历史记录。我怎样才能获得完整的历史记录?

我正在使用以下代码:

    TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer(tfsServerURL);
    VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

    // Null means All
    VersionSpec versionFrom = null;

    System.Collections.IEnumerable enumerable = vcs.QueryHistory(_tfsPath,
          VersionSpec.Latest,
          0,
          RecursionType.Full,
          "",
          versionFrom,
          VersionSpec.Latest,
          Int32.MaxValue,
          true,
          true);

1 个答案:

答案 0 :(得分:14)

您正在传递slotMode = true。将最终参数更改为false。

“Slot mode”表示“按路径查询,而不是按历史查询”。如果您只记住项目的旧名称但不记得将其移动到的位置,或者如果> 1项目已占用给定路径,则此功能非常有用。

为了将来参考,如果您想查看VS(或tf.exe)传递给服务器的参数,以便您可以模仿它们,turn on tracing