Git用户提交计数

时间:2014-11-14 14:40:22

标签: git tfs

我们使用TFS 2013,在90个单独的存储库附近,有40个开发人员定期进出这些存储库。

我想在所有项目的给定时间范围内生成一些关于每个用户提交数量的统计信息。是否有可能做到这一点?有没有可以做到的开源项目?如何使用一些TFS库?我肯定希望避免检查每个回购以获取信息。

3 个答案:

答案 0 :(得分:3)

如果要直接从TFS服务器提取此信息,而不是一次一个地下拉每个存储库,则可以。要做到这一点虽然您需要直接查询TFS数据库,并且您可以轻松编写SSRS报告以使此信息易于使用。

这是您可以用来开始的查询。这将显示所有存储库中的所有提交。

use [Tfs_DefaultCollection]

select r.Name, u.FullName, m.CommitTime, m.Comment 
from dbo.tbl_GitCommitMetadata m
left join dbo.tbl_GitCommit c on c.InternalCommitId = m.InternalCommitId
left join dbo.tbl_GitRepository r on r.InternalRepositoryId = c.InternalRepositoryId
left join dbo.tbl_GitCommitUser u on u.InternalId = m.CommitterId and u.PartitionId = m.PartitionId
order by r.Name, u.FullName, m.CommitTime

作为参考,我在博客上有关于how TFS stores git repositories的更多信息。

答案 1 :(得分:0)

查看GitStats

  

GitStats是一个git存储库统计信息生成器。它浏览存储库并输出带有统计信息的html页面。

答案 2 :(得分:0)

您可以使用以下命令获取在给定日期之后在存储库中执行某些更改的用户列表:

git log --branches --remotes --after 2014-11-13 --format='%aN' | sort -u

如果您有用户列表。您可以使用命令

获取给定用户的统计信息
git log --shortstat --branches --remotes --author="John Doe" --after 2014-11-01

我创建了一个简单的ruby脚本,它将为在给定时间段内在存储库中执行某些更改的所有用户生成统计信息:

https://gist.github.com/kallak/1b9be6c7c7f5283b557f

从git存储库文件夹运行脚本。

获取用户列表以及他们在2014-11-01和2014-11-13之间所做的更改摘要

git_stats.rb -a 2014-11-01 -b 2014-11-13