git verify-pack命令有一个选项,它为包-v
文件中找到的每个对象输出大量诊断信息。然而,size
一个 deltified 对象的字段返回的值与我模糊的期望不匹配——我认为它会类似于 Git 对象的未压缩“真实”大小?这个字段的实际含义是什么?
具体来说,我有一个 Git 包文件,其中包含一个大对象:
$ git cat-file -s 7daa9e75f86aa168748aef6c16c76b2acee1acca
61464170
(即对象大小约为58MB,这确实是我检查文件时看到的)
但是,为此对象返回的行git verify-pack -v
是这样的:
7daa9e75f86aa168748aef6c16c76b2acee1acca blob 568352 529608 770759074 1 27e47895a3822906eb31b05fe674ad470296c12e
(此处提供了验证包输出的完整副本)
如您所见(在阅读文档后git verify-pack
),该对象存储为deltafied,列的定义如下:
SHA1 type size size-in-packfile offset-in-packfile depth base-SHA1
所以这个对象的“大小”是568352(而“打包文件中的大小”是 529608)——但这意味着什么,因为实际对象大小是61464170字节?大小的数量级差异一定意味着大小数字仅指增量?