Я хочу, чтобы график # новых строк кода записывался каждый час в течение дня.
Я знаю журнал git diff, git, и они очень эффективны для определения общего количества строк, привязанных к ветке. Опция -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}'
Я боролся, хотя и придумал способ отслеживать # новых строк, написанных за последний час, включая незафиксированные изменения, во всех ветвях текущего репо.
Это может быть скорее математической проблемой.
Вопрос:
- Как определить точное количество строк, написанных за последний час для всех ветвей, включая незафиксированные изменения.
Gotchas/Сценарий:
- +200 uncommitted at 7pm - 200 новых строк. +250 uncommitted в 8 вечера - это всего 50 новых строк, написанных за последний час.
- +200 uncommitted at 7pm - 200 новых строк. В 8 вечера мы передаем 100 строк, а затем напишем еще 50 новых строк. Теперь +150 показывают как незафиксированные, но нам нужно будет определить, что за последний час было написано только 50 новых строк. Согласование фиксированной и незафиксированной статистики.
- +200 uncommitted в 19:00. В 19:30 мы пишем еще 500 новых строк и фиксируем их. В 8 вечера мы пишем еще 100 новых строк, тем самым показывая +300 как uncommitted. Мы должны в итоге получить 600 новых строк, написанных за последний час.