On Tue, Feb 13, 2018 at 10:57 AM, Junio C Hamano <gits...@pobox.com> wrote:
> Stefan Beller <sbel...@google.com> writes:
>> Oh, that is an interesting perspective. Here is how I arrived at the opposite
>> conclusion initially: Searching for 'ignore_env' shows that we care about it
>> as well for the index and graft paths, which are not the object store, hence
>> it would be better kept in the repository. (The alternative would be to
>> duplicate it into the raw object store, but I do not like data duplication)
>> But maybe it is better to duplicate this one bit instead of passing through
>> a larger scoped object.
> If a larger scoped repository refers to a smaller scoped
> object-store, is there still a need to duplicate that bit, instead
> of referring to the bit the smaller scoped one has when asking about
> the bit in the larger scoped one?
No (in theory). But in practice it may be worthwhile:
"What's the value of this ref?"
"Oh let me check the ignore_env bit that happens
to live in the object store first."
would be super confusing to me.
> I am not sure if these "do not look at environment variables" is an
> attribute of these entities---it sounds more like an attribute for
> each invocation of an operation, i.e. "I want to learn where the
> index is but would ignore GIT_INDEX environment for this particular
> query." and "What's the value of this ref? Please honor the
> common-dir environment during this query".
That sounds like we want to have a configset struct eventually.
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?