On Tue, Feb 13, 2018 at 11:35 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Stefan Beller <sbeller@xxxxxxxxxx> writes: > >> For now the ignore_env bit lives in the repository, as that helps >> when working with submodules, when reading its comments. >> Unfortunately 359efeffc1 (repository: introduce the repository >> object, 2017-06-22) did not reason about the existence of the ignore_env >> flag in its commit message. >> >>> So from that point of view, it may not matter where the "bit" lives, >>> among repository, object-store, or ref-store. >> >> It matters on the scale of confusing the developer? > > What I meant is that from the point of view, having the bit in the > data (not on the invocation) is confusing no matter which data > structure holds it--they are equally bad. Right. Which is why I'd strongly consider having it only in the repository object as that is the largest-scoped thing we'd want. e.g. submodules should care about environment variables differently: GIT_WORK_TREE=~/mysuperproject git checkout \ --recurse-submodules master So with such a command in mind, the environment variable would only apply to the superproject and the nested submodules should ignore the env, but compute their paths off the superproject, i.e. the superproject repository, not its object store?