我只是好奇为什么做出这个选择 - 它基本上排除了改变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散列始终是压缩的散列对象,而不是原始对象."