GIT - 确定每小时写入的#行代码(已提交和未提交)

时间:2013-11-04 19:29:25

标签: git

我想绘制一天中每小时写的新代码行数。

我知道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)}'

与主分区相比,devel分支中的#行

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}'

我一直在苦苦挣扎,想方设法跟踪当前回购中所有分支机构在过去一小时内写入的新行数,包括未提交的更改。

这可能更像是一个数学问题。

问题:

  • 如何确定所有分支在过去一小时内写入的确切行数,包括未提交的更改。

陷阱/场景:

  • +200在晚上7点未提交,是200行新写的。 +250在晚上8点未提交,过去一小时内只写了50行。
  • +200在晚上7点未提交,是200行新写的。晚上8点,我们提交了100行,然后写了50多行。现在+150显示为未提交,但我们需要确定在过去一小时内只写了50行。协调已提交和未提交的统计信息。
  • +200在晚上7点未提交。晚上7:30,我们再写500条新线并提交。晚上8点,我们再写100条新线,因此显示+300未提交。我们最后应该在过去一小时内写完600条新线。

1 个答案:

答案 0 :(得分:2)

有一个工具gitstats可以按日期为您提供Lines of Code。 也许你可以调整一点代码(用python编写)让他生成每小时的统计数据。