Мне просто любопытно, почему был сделан этот выбор - он в основном исключает изменение алгоритма сжатия, используемого Git - потому что он не использует SHA1 необработанных больших двоичных объектов.Возможно, здесь есть некоторые соображения эффективности.Может быть, ZLIB быстрее сжимает файл, чем алгоритм SHA1 при создании хэша, поэтому сжатие до хэширования происходит быстрее?
Вот ссылка на оригинальный Git READMEby Linus: http://git.kernel.org/?p=git/git.git;a=blob;f=README;h=27577f76849c09d3405397244eb3d8ae1d11b0f3;hb=e83c5163316f89bfbde7d9ab23ca2e25604af290
А вот соответствующий параграф:
"В содержании есть несколько видов объектов:база данных адресуемой коллекции. Все они дефлированы с помощью zlib и начинаются с тега их типа и информации о размере данных. Хеш SHA1 всегда является хешем сжатого объекта, а не оригиналомодин ".