Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
Visual studio 查看TFS变更集的更好方法?VS 2015_Visual Studio_Tfs_Tfs 2015_Team Explorer - Fatal编程技术网

Visual studio 查看TFS变更集的更好方法?VS 2015

Visual studio 查看TFS变更集的更好方法?VS 2015,visual-studio,tfs,tfs-2015,team-explorer,Visual Studio,Tfs,Tfs 2015,Team Explorer,我们的开发团队目前正在实施TFS/team Explorer 2015以跟踪代码更改。强大的工具,但我们发现在工作项中查看变更集详细信息的方法过于复杂。除非我们遗漏了什么,否则唯一的方法是双击“所有链接”或“版本控制”菜单中的更改集,然后在另一个窗格中启动详细信息 我们想要一个简单的网格,显示在主控制台(即“版本控制”窗格)中可见的变更集详细信息(ID,注释,相关项目,文件名),等等)。(如果有多个文件关联,则应为每个文件显示唯一的行。) 可能吗?如果没有,是否有人知道提供此功能的任何外接程序工

我们的开发团队目前正在实施TFS/team Explorer 2015以跟踪代码更改。强大的工具,但我们发现在工作项中查看变更集详细信息的方法过于复杂。除非我们遗漏了什么,否则唯一的方法是双击“所有链接”或“版本控制”菜单中的更改集,然后在另一个窗格中启动详细信息

我们想要一个简单的网格,显示在主控制台(即“版本控制”窗格)中可见的变更集详细信息(
ID
注释
相关项目
文件名
),等等)。(如果有多个文件关联,则应为每个文件显示唯一的行。)


可能吗?如果没有,是否有人知道提供此功能的任何外接程序工具?或者我们可以使用其他方法来完成此任务?

听起来您需要自定义报告。您要查找的信息实际上并不适合在平面网格中显示。例如,变更集可以(也将)包含对多个文件的变更


我相信有一份盒子里的报告显示了这一信息,但我目前无法证实这一点。如果没有,创建起来应该很容易——您要查找的信息肯定在数据仓库中。

如果您想在工作项中显示变更集详细信息,则需要使用自定义工作项控件以编程方式获取变更集信息

1) 。对于工作项的关联变更集,您可以使用以下代码(引用自此)

WorkItem-WorkItem=wiStore.GetWorkItem(workItemId);
List associatedChangesets=新列表();
foreach(工作项链接中的链接)
{
ExternalLink extLink=链接为ExternalLink;
if(extLink!=null)
{
ArtifactId artifact=LinkingUtilities.DecodeUri(extLink.LinkedArtifactUri);
if(String.Equals(artifact.ArtifactType,“Changeset”,StringComparison.Ordinal))
{
//将工件URI转换为变更集对象。
添加(vcs.ArtifactProvider.GetChangeset)(新Uri(extLink.LinkedArtifactUri);
}
}
}

2) 。有关如何创建自定义工作项控件的详细信息,请参阅:

当前,您必须按照所述方法查看工作项中链接的更改集。如果要在打开的工作项中显示更改集详细信息,则需要通过添加自定义控件自定义工作项模板。
WorkItem workItem = wiStore.GetWorkItem(workItemId);
        List<Changeset> associatedChangesets = new List<Changeset>();
        foreach (Link link in workItem.Links)
        {
            ExternalLink extLink = link as ExternalLink;
            if (extLink != null)
            {
                ArtifactId artifact = LinkingUtilities.DecodeUri(extLink.LinkedArtifactUri);
                if (String.Equals(artifact.ArtifactType, “Changeset”, StringComparison.Ordinal))
                {
                    // Convert the artifact URI to Changeset object.
                    associatedChangesets.Add(vcs.ArtifactProvider.GetChangeset(new Uri(extLink.LinkedArtifactUri);
                }
            }
        }