On Mon, Oct 30, 2017 at 11:13:41AM +0900, Junio C Hamano wrote: > Is the plan to allow running with multiple hash algorithms in > parallel? I thought what we want to see in the future codebase was > to have the default hash algorithm used for everything except for a > select few codepaths, and assumed that the way we achieve it is to > > - allow very low level helper functions (e.g. read_sha1_file(), > write_sha1_file_prepare(), etc.) to take a pointer to the hash > algorithm structure; > > - have higher level helper functions to call these low level > helpers with a fixed singleton instance of hash algorithm > structure that represents that default one (SHA2-something?); and > > - a few selected codepaths (e.g. index-pack that reads SHA-1 stream > and converts it into NewHash pack/index while building the object > name mapping) use an additional singleton instance of hash > algorithm structure that represents the SHA-1 hash, and the way > they use it is *NOT* by replacing "the current" one with SHA-1, > but by explicitly passing the instance to the low level helpers > as parameter. This is consistent with my understanding as well. > So, "current" does indeed sound quite wrong, as it makes it sound as > if you can swap it anytime and ask "which one is in effect now?". > If we do not want to call the default instance "SHA-2" because we > want to prepare for migrating again by not having the name of a > concrete hash algorithm sprinkled in the codebase all over like we > currently do, why not call the instance "the_hash_algo"? My original plan was to handle different algorithms in different submodules, but I think with the current transition plan, that becomes unnecessary, since we're going to paper over any differences that might show up. the_hash_algo should be fine, and it's consistent with the_repository and the_index as well. Thanks for a sensible suggestion. -- brian m. carlson / brian with sandals: Houston, Texas, US https://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: https://keybase.io/bk2204
Attachment:
signature.asc
Description: PGP signature