On Mon, Oct 08, 2018 at 03:59:36PM -0700, Stefan Beller wrote: > On Mon, Oct 8, 2018 at 2:57 PM brian m. carlson > wrote: > > > > Replace uses of GIT_SHA1_RAWSZ with references to the_hash_algo to avoid > > dependence on a particular hash length. > > Unlike the previous patches, this is dealing directly with packfiles, > which (I would think) carry their own hash function selector? > (i.e. packfiles up to version 4 are sha1 hardcoded and version > 5 and onwards will have a hash type field. Usually that hash type would > match what is in the_repository, but you could obtain packfiles > out of band, or the translation table that we plan to have might > be part of the packfile/idx file?) Yeah, the transition plan doesn't specify a format for pack files, but we may end up needing one. We definitely have a specified format for index files already, and that's where the translation table will be. Anything other than the pack index and the loose object index in the .git directory will have the same algorithm as the rest of the repository, so technically we could use any pack format as long as it lives in the .git directory. This code is mostly here on an interim basis to let us compile with a fully SHA-256 (no SHA-1) Git. Once that piece is done, we can move on to a stage 4 Git, which can do either only SHA-256, or only SHA-1, where we'll learn about various pack file formats and detecting the algorithm from them. -- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204