Aqui está um script perl para determinar o tamanho de cada commit do Git:
A fonte é aqui , adicionei um modificação:
#!/usr/bin/perl
foreach my $rev ('git rev-list --all --pretty=oneline') {
my $tot = 0;
($sha = $rev) =~ s/\s.*$//;
foreach my $blob ('git diff-tree -r -c -M -C --no-commit-id $sha') {
$blob = (split /\s/, $blob)[3];
next if $blob == "0000000000000000000000000000000000000000"; # Deleted
my $size = 'echo $blob | git cat-file --batch-check';
$size = (split /\s/, $size)[2];
$tot += int($size);
}
my $revn = substr($rev, 0, 40);
# if ($tot > 1000000) {
print "$tot $revn " . 'git show --pretty="format:" --name-only $revn | wc -l' ;
# }
}
Inicie o script no seu repositório git.
<path_to_script>/commit-size | awk '/\s80973c0/ {print " bytes"}' 80973c0
Meu exemplo:
± commit-size | awk '/\se920f35/ {print " bytes"}'
546 bytes