статистика времени с git

Я хотел бы создать статистику из моего репозитория git для создания временной диаграммы:

<commit> <timestamp> <changed-lines> 35abf648cfc 2011-04-04t17:23:58 +20 -4 93acb668f32 2011-04-04t17:59:01 -4 +1 

поэтому я могу построить «хороший» график для этого с помощью gnuplot или около того. Где <changed-lines> может быть чем угодно, то есть +20 -3 (добавлено 20 строк, удалено 3 строки) или всего 23 или что-то еще. Важно то, что строки подсчитываются – измененные файлы не будут полезны в моем сценарии.

Было бы хорошо, если бы я мог применить это только на части репо, потому что некоторые каталоги содержат неприятные двоичные файлы, что приведет к уничтожению статистики.

Я думаю, что git log может прийти как-то, но я не знаю, с чего начать …

2 Solutions collect form web for “статистика времени с git”

Эта строка приближается к тому, что вы хотите:

 $ git log --format="%h %ad" --numstat b29dfc1 Sun Apr 24 13:32:06 2011 +0200 3 0 bar 0 2 foo d552271 Sun Apr 24 13:21:16 2011 +0200 2 1 foo ac8894a Sun Apr 24 13:20:59 2011 +0200 1 0 foo 5965384 Sun Apr 24 13:20:40 2011 +0200 1 0 bar 1 0 foo 

Подробнее читайте в man-странице журнала git .

У меня есть смарт-скрипт perl, который выполняет эту работу:

 #!/usr/bin/perl -w use warnings; use strict; use Date::Parse; my $out = ""; while (<>) { chomp (my $line = $_); $out .= $1 if ($line =~ m/^commit ([a-z0-9]+)$/); $out .= "\t" . str2time($1) if ($line =~ m/^Date: (.+)$/); if ($line =~ m/ (\d+) files changed, (\d+) insertions\(\+\), (\d+) deletions\(-\)/) { print $out . "\t" . $1 . "\t" . $2 . "\t" . $3 . "\n"; $out = ""; } } print $out."\n"; 

Просто измените разрешения, чтобы сделать его исполняемым и вывести вывод git log --shortstat в этот скрипт (здесь хранится /tmp/gitstats.pl ):

 user@srv % git log --shortstat | /tmp/gitstats.pl d56d496ac70f6c441d624413f54aeba1dfb805d7 1303393788 104 51420 12081 98c4b66af7a0c7e6b8155bb2a538f7ca77c1243a 1303285305 234 34756 35022 6e33280279d5bd83ea8d0fde95b08394a297b159 1303251405 6 341 0 [...] 

Первый столбец – идентификатор фиксации, вторая запись – отметка времени unix, последовательность изменений по количеству файлов, вставки и удаления.

Это также отслеживает ваши двоичные файлы, но это, конечно, проблема вашего репо-дизайна …

  • Git больше не поддерживает автоматическую перезагрузку?
  • В чем разница между `git reset file` и` git reset HEAD file`?
  • Как я могу найти git commit в репо, который больше похож на указанную ветвь?
  • Отменить фиксацию и передать их ветке?
  • Как переименовать историю репозитория Git в подкаталог?
  • Предоставление разрешений доступа к репозиториям 2 git в одном экземпляре git
  • Как просмотреть всю фиксацию, когда журнал фильтруется файлом в тиге
  • Как избежать ошибки 404 с помощью git instaweb?
  • Как создать часть куска с добавленной новой линией в EOF?
  • скопировать один файл из локального репозитория Git
  • Получение ветки из git
  • etckeeper с git, способ справиться с огромным репо
  • Linux и Unix - лучшая ОС в мире.