我只是好奇为什么做出这个选择 - 它基本上排除了改变Git使用的压缩算法 - 因为它不使用原始blob的SHA1。也许这里有一些效率考虑因素。也许ZLIB在压缩文件方面比SHA1算法在创建散列时更快,因此在散列之前压缩更快?
这是Linus原始Git README的链接: http://git.kernel.org/?p=git/git.git;a=blob;f=README;h=27577f76849c09d3405397244eb3d8ae1d11b0f3;hb=e83c5163316f89bfbde7d9ab23ca2e25604af290
以下是相关段落:
“内容可寻址集合中有几种对象 数据库。它们全部用zlib放气,并从它们的类型标签开始,以及有关数据的大小信息。 SHA1哈希始终是哈希值 压缩 对象,而不是原始对象。“