1 日の中で 1 時間ごとに記述された新しいコード行の数をグラフにしたいと考えています。
私は 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}'
現在のリポジトリのすべてのブランチで、コミットされていない変更を含め、過去 1 時間に書き込まれた新しい行の数を追跡する方法を考え出すのに苦労しています。
これはもっと数学的な問題かもしれません。
質問:
- コミットされていない変更を含め、すべてのブランチで過去 1 時間に書き込まれた行の正確な量を特定するにはどうすればよいですか。
落とし穴/シナリオ:
- 午後 7 時にコミットされていない +200 は、200 の新しい行が書き込まれます。午後 8 時にコミットされていない +250 は、過去 1 時間に書き込まれた新しい行が 50 行だけです。
- 午後 7 時にコミットされていない +200 は、200 の新しい行が書き込まれます。午後 8 時に 100 行をコミットし、さらに 50 行を新たに書き込みます。+150 はコミットされていないと表示されますが、過去 1 時間に書き込まれた新しい行は 50 行だけであると判断する必要があります。コミットされた統計とコミットされていない統計の調整。
- 午後 7 時に未コミット +200。午後 7 時 30 分に、さらに 500 行の新しい行を書き込んでコミットします。午後 8 時に、さらに 100 行の新しい行を書き込み、+300 行がコミットされていないことを示します。過去 1 時間で 600 行の新しい行が書き込まれることになります。