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

8
我们有4个团队项目集合,每个集合中有十几个团队项目。我们已经开始使用集成的代码审查系统,并请求跨这些集合和项目进行审查。 有没有一种简单的方法可以找到你参与的所有代码审查,跨集合或至少跨集合中的项目?我希望在Visual Studio内的Team Explorer中完成,但也可以访问Web门户。如果无法跨集合执行此操作,则只能在集合内搜索也是可以接受的。
我仔细查看了Team Explorer的"My Work"部分,并关闭了sln以尝试将Explorer的上下文强制为整个集合。但是没有成功: "My Work"标题仍显示下拉列表中实际的项目。
我尝试创建自定义“查询”,但不确定如何继续。生成的查询包含一个筛选条件Team Project = @Project,但我删除了它,只剩下基本查询。
Work Item Type = Code Review Request

为了测试目的,我已经省略了“State <> Closed”,并且我会为工作项类型Code Review Response创建一个单独的查询(我想)。但在此之前:上述查询似乎仅提供当前选择团队项目的审查。另外,在保存时,我会出现一个对话框,要求我将查询保存在特定项目内,进一步表明它仍然是项目特定的。
我正在使用TFS 2013,但我们倾向于在有用时进行升级,因此如果在新版本中有即将推出的功能可以解决这个问题,我很乐意听到相关信息。
底线:如何概述您的TFS服务器上的所有代码审查
4个回答

6

在VS2015中,转到团队资源管理器主页 > 单击工作项 ... > 选择新查询 > 在“字段”列中选择“已审核人”,并在“值”字段中添加相关的用户名,然后运行查询。您将看到您参与的所有代码审查。


2
很遗憾,我不认为有一个好的方法可以做到你所要求的事情。当然,无法在Team Explorer中实现。正如您所知,代码审查被存储为工作项,并且团队项目之间存在强烈的边界,其中工作项是不能跨越的。未来请注意,根据您的业务运营方式,您可以考虑使用1个团队项目集合、1个团队项目,并通过团队和区域进行分离。http://nakedalm.com/one-team-project/ 当然,这对您现在没有帮助。
我非常确定您将无法使用TFS创建查询以返回您想要的项(请注意,如果您能够这样做,您需要查询分配给您的工作项响应Assigned To = @Me而不是工作项请求。请求是发出代码审查请求的人,响应是评审者)。
您是否启用了tfs报告?如果是这样,与ds19建议的一样,您可以直接查询tfs_Warehouse db。
另一个解决方案可能是TFS API,但您需要TFS 2015(顺便说一句,它充满了功能)(即使链接说它适用于Visual Studio Online,它也适用于On-Prem)。
我知道这并没有回答您的问题,但希望它能给您一些思路。

1
相反(与您的最终评论相反),这很好地回答了我的问题。感谢您的见解,并确认了我的怀疑,即这并不是容易实现的。看起来我们有太多的集合/项目超出了我们实际的使用情况。 - Jeroen
这并不一定是件坏事。问题在于通常会假设团队项目=产品,但这并不一定是真的!很高兴我能提供帮助。 - Rodders

0

您可以查询 Tfs_Warehouse 数据库:

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

如何查询“Tfs_Warehouse”?我是一个使用TFS的开发人员,而不是TFS管理员。 “打开查询”屏幕(从Team Explorer>我的工作>代码审查)是创建查询的可视化GUI界面。 - Jeroen
他指的是mssql数据库中的Tfs_Warehouse,这是在假定您启用了数据仓库的情况下。 - Rodders

0

请确认您的查询不会返回其他团队项目的代码审查结果,方法是在“结果”部分点击“列选项”,并添加“团队项目”字段。[同时确认您在另一个团队项目上有一个代码审查请求]。[如果筛选器在“列选项”窗口中选择了您的团队项目,也不用担心]。
您还可以通过为“团队项目”子句添加另一个值来进行测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接