Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查找TFS源代码管理树中某一点以下的所有更改_Tfs - Fatal编程技术网

如何查找TFS源代码管理树中某一点以下的所有更改

如何查找TFS源代码管理树中某一点以下的所有更改,tfs,Tfs,我需要知道在源代码管理树的特定级别上发生了哪些更改(如果有)。有没有办法对TFS进行这样的查询?如果我理解正确,答案可能很简单: tf history c:\some\subdir -r -format:detailed -noprompt 如果这还不够好,请回复。使用团队资源管理器: 开源控制资源管理器 导航到所需的源代码管理文件夹 右键单击并选择“查看历史记录” 显示已在树或树下的该级别签入的所有变更集。 使用tf实用程序: tf历史记录c:\localFolder-r-format

我需要知道在源代码管理树的特定级别上发生了哪些更改(如果有)。有没有办法对TFS进行这样的查询?

如果我理解正确,答案可能很简单:

tf history c:\some\subdir -r -format:detailed -noprompt

如果这还不够好,请回复。

使用团队资源管理器:

  • 开源控制资源管理器
  • 导航到所需的源代码管理文件夹
  • 右键单击并选择“查看历史记录”
  • 显示已在树或树下的该级别签入的所有变更集。


    使用tf实用程序:

    tf历史记录c:\localFolder-r-format:detailed

    以下是tf历史记录文档的链接,以了解有关使用的更多详细信息:


    使用以编程方式执行此操作:

    下面是一个基于我们的一些代码的示例方法。它采用路径、开始时间和结束时间,并在两个指定时间之间提供该路径下的所有变更集详细信息:

    private StringBuilder GetTfsModifications(字符串tfsPath、日期时间开始时间、日期时间结束时间)
    {
    StringBuilder bodyContent=新的StringBuilder();
    TeamFoundationServer tfs=新的TeamFoundationServer(“YourServerNameHere”);
    VersionControlServer vcs=(VersionControlServer)tfs.GetService(typeof(VersionControlServer));
    //获取给定路径下的变更集集合
    System.Collections.IEnumerable变更集=vcs.QueryHistory(
    tfsPath,
    版本规格最新,
    0, 
    RecursionType.Full,
    无效的
    新的DateVersionSpec(startTime),
    新的DateVersionSpec(endTime),
    int.MaxValue,
    是的,
    假);
    //迭代更改集并从中提取所需的任何数据
    foreach(变更集中的变更集变更集)
    {
    StringBuilder更改=新建StringBuilder();
    StringBuilder assocWorkItems=新StringBuilder();
    //为变更集创建关联工作项的列表
    foreach(变更集中的工作项关联工作项。工作项)
    {
    Append(assocWorkItem.Id.ToString());
    }
    //从变更集中的每个变更中获取详细信息
    foreach(changeset.Changes中的变更)
    {
    changes.AppendLine(string.Format(CultureInfo.InvariantCulture,“\t{0}\t{1}”,
    PendingChange.GetLocalizedStringForChangeType(change.ChangeType),
    change.Item.ServerItem);
    }
    //从变更集中获取一些详细信息,并在其下方附加单个变更详细信息
    如果(更改长度>0)
    {
    bodyContent.AppendLine(string.Format(CultureInfo.InvariantCulture,“{0}\t{1}\t{2}\t{3}\t{4}”,
    changeset.ChangesetId,
    changeset.Committer.Substring(changeset.Committer.IndexOf(“\\”)+1),
    changeset.CreationDate,
    changeset.Comment,
    assocWorkItems.ToString());
    Append(changes.ToString());
    }
    }
    返回正文内容;
    }
    
    是否要按程序执行此操作?