我想计算git之间的提交时间,这个(我希望)会给我一个粗略的测量结果。这可能吗?计算git提交之间的时间
回答
如果您可以将git log
的输出发送到一个文件,那么您已经达到了一半。我不确定你最喜欢什么语言,但我知道在bash脚本中很容易做到。
在结尾添加'--format =%ad'以大大简化过程。 – Eagerod
这将打印的新日提交其次是上了年纪的日期提交:
git log HEAD~[newer_commit] -n 1 --format=%ad; \
git log HEAD~[older_commit] -n 1 --format=%ad
您将与日期字符串结束。使用任何你喜欢的语言来计算差异。
下面是使用bash
和date
进行此操作的更完整示例。
首先,在Git: want to iterate through all commits on branch, and list files in each commit指出:
git的转速名单将列出给出一个到达的所有版本提交按时间倒序排列,所以你可以通过它的一个分支的名字来获取列表分支头向后
所以,基本上,这个想法是,我使用rev-list
向后通过回购的历史,从头部迭代,并在每次修订,得到当前的时间戳,和以前的时间戳提交;将它们作为UNIX时间戳,因为那样我们就可以在bash
中直接进行整数运算(差异)最后使用date
来显示日期。因此,这bash
脚本是:
for ix in `git rev-list master`; do
thists=`git log $ix -n 1 --format=%ct`;
prevts=`git log $ix~1 -n 1 --format=%ct 2>/dev/null`;
if [ ! -z "$prevts" ] ; then
delta=$(($thists - $prevts));
echo `date -d @$thists +'%Y-%m-%d %H:%M:%S'` "-->" \
`date -d @$prevts +'%Y-%m-%d %H:%M:%S'` " ;= " \
`date -d @$delta +'%H:%M:%S'`;
fi;
done
注意,当你在第一次提交,没有前/父提交,所以git log
将失败:fatal: ambiguous argument '45e95c7...~1': unknown revision or path not in the working tree.
;为避免打印此消息,我将stderr
重定向至命令中的/dev/null
,然后仅在prevts
不为空时才执行时间增量计算。从这个脚本的输出是这样的:
2017-08-27 09:44:04 --> 2017-08-26 17:12:22 ;= 17:31:42
2017-08-26 17:12:22 --> 2017-08-26 16:48:24 ;= 01:23:58
2017-08-26 16:48:24 --> 2017-08-26 16:28:05 ;= 01:20:19
...
然而,这些增量是一个小时 - 这样的时间差的更正确的显示,我用Python的datetime.timedelta
- 所以在上面的脚本,你可能要替换的`date -d @$delta +'%H:%M:%S'`;
行:
`python -c "import datetime as dt; d = dt.timedelta(seconds=$delta); print(d)"`
...在这种情况下,产生此日志:
2017-08-27 09:44:04 --> 2017-08-26 17:12:22 ;= 16:31:42
2017-08-26 17:12:22 --> 2017-08-26 16:48:24 ;= 0:23:58
2017-08-26 16:48:24 --> 2017-08-26 16:28:05 ;= 0:20:19
...
- 1. 的Git - DIFF在老枝之间提交
- 2. 的Git包含任意之间提交
- 3. 交替行之间的总计时间
- 4. 计算文本字段交互之间的时间
- 5. 计算字段之间的时间差
- 6. 计算记录之间的时间?
- 7. 计算两行之间的时间差
- 8. 计算行之间的时间
- 9. 计算日期之间的时间差
- 10. 计算时间1到时间2之间的时间?
- 11. 在git提交之间插入宏
- 12. 如何计算git中两次提交之间更改的行数?
- 13. 计算线段之间的交点
- 14. 删除两次提交之间的git提交
- 15. 如何计算时间间隔之和
- 16. 计算当前时间和未来时间之间的时差
- 17. 如何计算两个分支之间的提交数量?
- 18. 计算一列中的时间戳之间的持续时间
- 19. 如何计算unix时间戳之间的时间差?
- 20. 计算两个时间戳之间的时间量
- 21. 计算日期时间之间的总时间
- 22. 计算两个日期时间字符串之间的时间
- 23. 计算unix时间戳之间的平均时间
- 24. 使用时间计算两次之间的中位时间
- 25. 计算日期时间之间的时间
- 26. iPhone SDK,计算给定时间之间的时间差
- 27. 计算两个日期时间之间的时间
- 28. Excel中 - 两个时间之间的计算时间框架
- 29. 如何计算两个时间之间的时间差
- 30. java计算两个时间戳之间的时间
是的,这是可能的。试一试。 –
如果要测量生产力,使用提交挂钩自动更新数据库或包含时间数据的csv文件可能是个不错的主意,后者可以稍后绘制。 –