Команда git verify-pack имеет опцию -v
, которая выводит много диагностической информации для каждого объекта, найденного в файле pack. Однако значение, возвращаемое полем size
для дефинированного объекта, не соответствует моим туманным ожиданиям - я думал, что это будет что-то вроде несжатого «истинного» размера объекта Git? Каков фактический смысл этой области?Git: значение объекта 'size', возвращаемое git verify-pack
В частности, у меня есть packfile Git, который содержит большой объект:
$ git cat-file -s 7daa9e75f86aa168748aef6c16c76b2acee1acca
61464170
(т.е. размер объекта составляет около 58MB, что на самом деле то, что я вижу, когда я проверить файл из)
Тем не менее, линия возвращается для этого объекта посредством git verify-pack -v
заключается в следующем:
7daa9e75f86aa168748aef6c16c76b2acee1acca blob 568352 529608 770759074 1 27e47895a3822906eb31b05fe674ad470296c12e
(Полная копия вывода проверить-пакет доступен here)
Как вы можете видеть (после прочтения the documentation для git verify-pack
), этот объект хранится deltafied и определение столбцов это:
SHA1 type size size-in-packfile offset-in-packfile depth base-SHA1
Так «размер» для этого объекта (и «размер-в-packfile» является 529608) - но что это значит, учитывая, что фактический размер объекта является байт? Разница в величине величины в размере должна означать, что цифра размера относится только к дельта?
Можете ли вы опубликовать полный вывод 'git verify-pack -v'? – devnull
Благодаря @devnull - полный вывод проверочного пакета доступен здесь: https://gist.github.com/rtyley/6138921/raw/7de67ceeb6acef43a92acf26ed43d88d146beb80/verify-pack.txt –
Размер файла немного изменился между сообщение и вывод контрольной упаковки? – devnull