我想绘制一天中每小时编写的代码新行数。
我知道git diff和git log非常强大,可用于确定提交到分支的总代码行数。 --since = "7am"选项也非常好。
我正在使用的一些git命令包括:
总行数
git log --numstat --pretty="%H" master | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
与主分支相比,开发分支增加了#行
git log --numstat --pretty="%H" master..devel | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
# 某一天以来的行数
git log --since="7am" --format=format: --numstat | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("%d, -%d\n", plus, minus)}'
# 还未提交的代码行数
git diff --stat | tail -1 | awk '{print $4}'
我一直在苦恼如何跟踪包括未提交更改在内的当前仓库中所有分支过去一小时新写入的行数。
这可能更像是一个数学问题。
问题:
- 如何确定过去一小时在所有分支中包括未提交更改的确切行数。
注意事项/场景:
- 在晚上7点时,+200未提交意味着新写入了200行。在晚上8点,+250未提交意味着只有过去一小时新写入50行。
- 在晚上7点时,+200未提交意味着新写入了200行。在8点我们提交了100行,然后又写入了50行新代码。现在+150显示为未提交,但我们需要确定过去一小时只写入了50行新代码。调和已提交和未提交的统计数据。
- 在晚上7点时,+200未提交。在7:30pm我们又写入了500条新的代码并提交。8点时,我们又写入了100条新的代码,因此显示为+300未提交。我们应该得出过去一小时写入了600行新代码的结论。
git config
存储库等中),然后将此次结果与它们进行比较。保留最后一个值的最简单的存储选项可能是git config
,但是由于您想要保留历史数据以进行图形化处理,因此您可能需要一个简单的数据库。如果您已经有一个正在运行的数据库服务器,可以使用它,或者您可以使用基于文件的SQLite数据库。 - Moshe Katz