Существует ли способ узнать, сколько пространства было использовано каждой фиксацией? Если я продвину то после каждой фиксации я буду видеть, сколько данных отправляется. Это - один способ оценить его. Но должен быть лучший путь.
Принятое решение дает мне после вывода:
$ ./git-commit-sizes
1494 40eb8832156be81711f3816f04031cf3b8ef16b0 2
0 fbfb9f4c1f7ae403b9d8b4e194e384c6c41283ad 2
1961638 35e59833bad00edff2c5e8600eb4e62251606556 23
0 49cffee125318113d5dbe6f81e4ce12dcc07263d 2
Каждая строка представляет одну фиксацию, давая три информации:
используемые байты, sha1 имя, измененные файлы
Вот сценарий жемчуга для определения размера каждой фиксации Мерзавца:
источник здесь , я добавил одну модификацию:
#!/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` ;
# }
}
Запускают сценарий в Вашем репозитории мерзавца.
<path_to_script>/commit-size | awk '/\s80973c0/ {print $1 " bytes"}' 80973c0
Мой пример:
± commit-size | awk '/\se920f35/ {print $1 " bytes"}'
546 bytes