【问题标题】:How to count total lines changed by a specific author in a TFS repository?如何计算 TFS 存储库中特定作者更改的总行数?
【发布时间】:2017-07-02 16:20:48
【问题描述】:

我对此很陌生,所以我非常感谢您的帮助!!!!

我的存储库位于 TFS 中,我正在使用 Visual Studio 2015 和 SSMS 2016,我的经理要求我查找特定作者的每个分支的“行已更改”。

能否请您帮助我如何实现这一目标?

【问题讨论】:

  • 记录:lines_changed != productivity 如果这是他想要此信息的目的。
  • +1 @Tanner 的评论。你的仓库是 Git 吗?那么this 可能会有所帮助。您还可以尝试使用 TFS API,它也适用于基于 TFVC 的存储库。
  • 不幸的是它不是。我很抱歉,但正如我所说,我很新,我不知道 lines_changed != 生产力意味着什么。你能解释一下吗? @Tanner
  • 我的意思是,如果您的经理想通过查看员工更改的代码行数来了解员工完成了多少工作,那么它不太可能是可靠的。一些最聪明的编码人员几乎没有时间来实际编写代码,当他们这样做时,可能会到处写几行代码,这些代码行非常好。有些人可能会编写数千行充满错误的代码,并且可以以更简单的方式编写。
  • 知道了,但我仍然必须这样做:(,有什么建议可以实现吗?

标签: sql-server visual-studio tfs ssms msscci


【解决方案1】:

TFS 数据仓库中有一个FactCodeChurn 表,其中应该包含您需要的数据。

您可以使用如下 SQL 查询语句:

   SELECT TeamProjectProjectNodeName 
          ,checkedinbyname 
          ,SUM([LinesAdded]) AS 
          ,SUM([LinesModified]) AS
          ,SUM([LinesAdded]+[LinesModified]) AS 
          ,CONVERT(VARCHAR(10), MIN(DateTime),120) AS 
          ,CONVERT(VARCHAR(10),MAX(DateTime),120) AS 
      FROM [Tfs_Warehouse].[dbo].[CodeChurnView] WHERE  TeamProjectProjectNodeName='xxx' AND  ChangesetTitle NOT LIKE 'xx'  AND FilenameFileExtension IN('.css','.cs','.aspx','.sql','js','.ascx') AND (LinesDeleted <>0 OR LinesModified<>0 OR FilenameFilePath LIKE '$/XX' AND FilenameFileExtension IN('.sql')) AND NetLinesAdded>=0   GROUP BY TeamProjectProjectNodeName, checkedinbyname 
    ORDER BY DESC

注意:您必须有访问Tfs_Warehouse数据库的权限才能执行上述语句

查看仓库数据库中有关Code Churn tables 的更多详细信息。添加相关博客,包括使用TFS API使用TFS Warehouse Database两种方式供您参考:

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2019-05-06
    • 2014-11-20
    • 2018-03-19
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    相关资源
    最近更新 更多