Как я могу рассчитать разницу в размерах коммитов для каждого коммита в python?

Например, рассмотрим репозиторий git с 5 фиксациями размером 1 МБ, 2 МБ, 2,5 МБ, 3 МБ и 2 МБ для каждой фиксации. Я хочу получить разницу в размере каждой фиксации в python. То есть 1Мб, 1Мб, 0,5Мб, 0,5Мб, -1Мб.

Есть ли какой-либо способ или команда в python, с помощью которой я мог бы рассчитать размер репозитория при каждой фиксации, а затем я мог бы просто вычесть каждую последующую запись, чтобы получить разницу, или прямую команду для этого.

Я использую gitpython из скрипта python для выполнения операций git.


person Tavish Jain    schedule 23.12.2019    source источник
comment
Думаю, начните здесь: stackoverflow.com/a/42544963/7976758 Поиск: stackoverflow.com/search?q=%5Bgit%5D+object+size   -  person phd    schedule 23.12.2019
comment
Вам действительно нужно сначала определить размер фиксации, потому что размер отдельных файлов, хранящихся в фиксации, не совпадает с размером BLOB-объектов Git, содержащих эти файлы. ' данные, и если и когда эти объекты сжимаются в файл пакета Git, они в конечном итоге имеют размер третьего. Без четкого определения размера коммита никто никогда не согласится с тем, что ваш код правильный.   -  person torek    schedule 23.12.2019
comment
Связано: stackoverflow.com/q/8646517/1256452   -  person torek    schedule 23.12.2019
comment
@torek под размером фиксации я имею в виду размер репо в любой конкретной фиксации. Это означает, что если я проверяю при любом коммите, каков был размер репо в то время. Кроме того, предоставленная вами ссылка дает мне размер репо.   -  person Tavish Jain    schedule 23.12.2019
comment
Этот размер может внезапно измениться. Например, попробуйте создать первые несколько коммитов выше, затем запустите du -h ,git (при условии, что система Linux-y), затем запустите git gc, затем снова запустите du -h .git. (Если вы отправляете файлы в какой-либо вышестоящий Git, они будут упакованы быстрее, и вы не увидите такого количества переходов размера, как это.)   -  person torek    schedule 23.12.2019
comment
interrupt.memfault.com/blog/code-size-deltas   -  person Tedi    schedule 13.05.2020