Eu tenho um script inteligente perl que faz o trabalho:
#!/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";
Apenas altere as permissões para torná-lo executável e canalize a saída de git log --shortstat
para esse script (aqui o script é armazenado /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
[...]
A primeira coluna é o ID de confirmação, a segunda entrada é o carimbo de hora do UNIX, seguido pelo número de arquivos alterados, inserções e exclusões.
Isso também rastreia seus arquivos binários, mas isso é obviamente um problema do seu projeto de recompra ...