Subject: Re: [PATCH 0/9] No more adding submodule ODB as alternate

From: Junio C Hamano <[email-masked]>
Date: Thu, 23 Sep 2021 11:05:41 -0700

Jonathan Tan <[email-masked]> writes:

> This series is on jt/add-submodule-odb-clean-up.
>
> After this series, the entire test suite runs without ever adding a
> submodule ODB as an alternate (checked by running with
> GIT_TEST_FATAL_REGISTER_SUBMODULE_ODB=1). The code to lazily add
> submodule ODBs as alternates still remains (with a trace message printed
> if it happens) just in case there is a rare interaction that the test
> suite doesn't cover.
>
> This is part of my effort to support partial clone in submodules, but
> the results here are also beneficial for non-partial-clone submodule
> users in that access to submodule objects are now quicker (because Git
> no longer needs to linearly search through alternates when accessing
> these objects). It also improves code health in that it is clearer at
> the call site when a submodule object is being accessed.

Nice.  One specially bad thing about the alternate odb abuse is that
it is very hard to undo once you add an odb that is not really an
alternate as if it were an alternate.  Accessing the objects from
the repository the objects should be found, keeping clear separation
between the superproject and its submodule, which is done here, is
the right thing to do.

Unconfortably excited.