Hi, Peff Thanks for the great feedback. On Fri, Jan 31, 2020 at 6:03 AM Jeff King <peff@xxxxxxxx> wrote: > [...] > The hash transition document says: > > To convert recorded submodule pointers, you need to have the converted > submodule repository in place. The translation table of the submodule > can be used to look up the new hash. > > which I take to mean that the local copy of the submodule needs to match > the superproject hash (this says nothing about what the upstream owner > of the submodule wants to do; we'd be translating on the fly to the new > hash in the local repo). So using the_hash_algo would work either way. > > I don't think we're particularly interested in supporting multiple > unrelated repositories within the same process. While that would be > convenient for some cases (e.g., you have a million repositories and > want to look at all of their trees without creating a million > processes), I don't think it's a goal anyone is really working towards > with this "struct repository" layer. Thanks for these explanations. One thing that left me thinking, though, is about changing the_hash_algo to r->hash_algo (not only in oid_to_hex()). I previously thought this would eventually be required for the hash transition. But if I understood your comment correctly, it might not be necessary since the submodule should always match the superproject hash. And, as you mentioned, supporting multiple unrelated repos [in a single process] is not one of the main goals, as well. So wouldn't keep using the_hash_algo be OK?