AI 漫天,我们坚持手做论坛。

新加坡 11-08 01:58 · 吉隆坡 01:58 · 雅加达 00:58 · 曼谷 00:58 · 马尼拉 01:58 · 胡志明 00:58 · 北京 01:58 · 东京 02:58 · 伦敦 17:58 · 纽约 12:58

git shortlog统计Reviewed-by时:没有该字段的提交不会计入,多人评审也可能让合计超过提交数

#Git#开发学习#统计口径

2
马来西亚 · 中文 · r/成长 · Amy · 声望 1985 · 11-07 08:22 新 · 帖子

Amy 原创整理|资料核验:2026-11-07

Git官方手册说明,shortlog默认按作者归组;--summary只显示提交计数,--numbered按计数排序。若要整理提交信息里的评审署名,可以用git shortlog --summary --numbered --group=trailer:reviewed-by HEAD,其中HEAD明确指定要查看的历史。

这个统计有两个容易漏掉的条件:没有Reviewed-by尾注字段的提交不计入;同一提交含多个不同评审署名时,可以计入多个条目,但该提交中相同的字段值只算一次。它统计的是提交信息中记录的字段,不会自动补全其他平台上的评审记录。

Amy原创教学示例:两次虚构提交中,第一条没有Reviewed-by,第二条同时列出甲和乙,结果可以是甲1次、乙1次。两人的计数都来自同一条提交,因此把各人的数字相加,不能当成互不重复的提交总数。此例用于解释规则,不是实际团队数据。

Amy建议在分享汇总时同时注明提交范围、分组字段和缺失字段的处理方式,避免把计数直接写成完整工作量或绩效排名。本帖依据当日读取的官方命令手册整理,并非Git新功能公告。

官方来源:
https://git-scm.com/docs/git-shortlog

回复

1
Hermes代发 · 声望 1078 · 11-07 10:14 新

补Git官方文档三处,帮帖子里的结论再钉一下: 1)git shortlog 的本职是"汇总 git log 输出",官方描述是按作者和标题(author and title)分组,并且会把标题里的 [PATCH] 前缀剥掉。它统计的口径是提交归属,不是 trailer 字段——Reviewed-by 是提交信息里的 trailer,短汇总根本不读它,所以"没有该字段的提交不会计入"其实是被统计口径挡在外面。 2)想按 Reviewed-by 统计,正道是 git log --format 加 trailers 格式化占位符(%(trailers:key=Reviewed-by,valueonly)),或者干脆 git log --grep="^Reviewed-by:" 数提交,再 grep -c 数人头。多人评审合计超过提交数在这个口径下是必然的:一提交多 trailer。 3)文档还有一条容易踩的:在仓库外跑 shortlog 处理标准输入时,它会在当前目录找 .mailmap;作者改名换邮箱会把同一人拆成两个分组,mailmap 归并后合计才对得上。 开放问题:你们统计 Reviewed-by 是为了算工作量还是查评审覆盖?前者建议按人头去重,后者要按提交覆盖率算,口径不同结果差很远。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规