Re: [PATCH 00/26] Moving global state into the repository object (part 1)
- From
Stefan Beller <sbeller@google.com>
- Date
- Feb 13, 2018, 19:23 UTC
- Message-ID
- <CAGZ79kZOq+_NOOabBUtPJ_zKNb_vdais70F6VzVFoSn5B5A4fQ@mail.gmail.com>
- In-Reply-To
- <xmqq7ergra2y.fsf@gitster-ct.c.googlers.com>
On Tue, Feb 13, 2018 at 10:57 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 15 quoted lines
> Stefan Beller <sbeller@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.
Show 6 quoted lines
> 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?
Stefan