如何在 TFS 中查找跨项目和 Collections 的所有代码审查?

How to find all Code Reviews across Projects and Collections in TFS?

我们有 4 个团队项目 Collection,每个项目有一个 dozen-or-so 个团队项目。我们已经开始使用集成代码审查系统,并请求对这些 Collection 和项目进行审查。

是否有一种简单的方法可以找到您参与的所有代码审查,跨越 Collection 或至少 across Collection? 中的项目我更喜欢在 Visual Studio 中的团队资源管理器中执行此操作的方法,但也可以访问 Web 门户.如果我可以在 Collection 内搜索,如果无法跨越它们进行搜索,我已经很高兴了。

我仔细查看了团队资源管理器的 "My Work" 部分,还关闭了 sln 以尝试将资源管理器的上下文强制到整个 Collection。没有骰子:"My Work" header 仍然在下拉列表中显示实际项目。

我已尝试创建自定义 "Query",但不确定如何进行。生成的查询有一个过滤 Team Project = @Project 的子句,但我删除了它,基本上留下了这个查询:

Work Item Type = Code Review Request

出于测试目的,我省略了 State <> Closed,并且我会为工作项类型 Code Review Response 创建一个单独的查询(我认为),但在我去那里之前:上面的查询似乎只为当前选定的团队项目提供评论。此外,保存后,我会看到一个对话框,要求我将查询保存在 内部 特定项目中,进一步表明它仍然是 project-specific.

我正在使用 TFS 2013,但我们倾向于在它有用时进行升级,因此如果新版本中即将推出的功能可以解决此问题,我很乐意听到它们。

底线:如何在 TFS 服务器上获得所有代码审查的概览?

您可以查询Tfs_Warehouse数据库:

SELECT count(*), dwi.[TeamProjectCollectionSK]
  FROM [Tfs_Warehouse].[dbo].[DimWorkItem] dwi  
  where dwi.System_WorkItemType = 'Code Review Request'
  group by dwi.[TeamProjectCollectionSK]

您能否通过单击“结果”部分的 "Column Options" 并添加 "Team Project" 字段来仔细检查您的查询没有 return 来自其他团队项目的任何代码审查? [并验证您对另一个团队项目有代码审查请求]。[如果过滤器在列选项 window 上为您的团队项目选择的团队项目有一个选项,请不要担心。
您还可以通过为 "Team Project" 子句添加另一个值来对此进行测试。

遗憾的是,我不认为有一个很好的方法来完成你所要求的。当然不在团队资源管理器中。如您所知,代码审查被存储为工作项,并且团队项目之间存在严格的界限,其中工作项不能跨越。未来的注意事项,根据您的业务运作方式,您可以考虑 1 个团队项目集合、1 个团队项目,并按团队和区域分隔您的工作。 http://nakedalm.com/one-team-project/ 当然,这现在对您没有帮助。

我很确定您将无法使用 TFS 创建查询以 return 您想要的项目(请注意,如果可以,您需要查询 分配给您的工作项响应 分配给 = @Me 而不是 工作项请求。请求是人发出代码审查请求,响应是审查者。

您是否启用了 tfs 报告?如果是这样,正如 ds19 所建议的那样,您可以直接查询 tfs_Warehouse 数据库。

另一个解决方案可能是 TFS API,但您将需要 TFS 2015(顺便说一句,它包含了很多功能)(尽管 link 说它适用于 Visual Studio 在线,它也适用于 On-Prem。)

我知道这不能回答您的问题,但希望它能给您一些思考

在 VS 2015 上,转到 Team Explorer Home > 单击 Work Items ... > Select New Query > Select "Reviewed By" 在 Field 列中并添加相关的 用户名 在值字段和 运行 查询。您将看到您参与的所有代码审查。