我只是好奇为什么做出这个选择 - 它基本上排除了更改 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 哈希值始终是压缩的对象,而不是
原版的。”
正如你所说,它是originalREADME,Git 启动时的情况。从那时起,它已被更改,以便在压缩之前计算 SHA1。
值得注意的是,用于命名对象的 SHA-1 哈希值
是原始数据加上此标头的哈希值,因此“sha1sum”文件
与文件的对象名称不匹配。 (历史记录:黎明时分
在 git 时代,哈希值是压缩对象的 SHA-1。)
http://schacon.github.com/git/user-manual.html#object-details http://schacon.github.com/git/user-manual.html#object-details
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)