Subject: Re: [PATCH] Provide config option to expect files outside sparse patterns

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 22 Feb 2022 13:57:00 +0100

On Tue, Feb 22 2022, Johannes Schindelin wrote:

> Hi Elijah,
>
> On Mon, 21 Feb 2022, Elijah Newren wrote:
>
>> On Mon, Feb 21, 2022 at 2:57 PM Ævar Arnfjörð Bjarmason
>> <[email-masked]> wrote:
>>
>> > There's also no law that says we can't have a three-level variable as
>> > core.sparse.*, perhaps that would be the start of a good trend, and it
>> > would sort adjacent to core.sparse[A-Z].* ...
>>
>> Interesting thought.  I'm curious what others think of this.
>
> What would make it `core`?
>
> In other words, while it is valuable to consider this option, I don't
> think that it solves anything, for the price of additional complexity.

To a first approximation what makes it core.* is that we have a
core.sparseCheckout.

It's hard come up with some definition of config namespacing where it
belongs there, but not a setting that tweaks it further, no?

I.e. we could quibble with the benefit of hindsight whether
core.sshCommand was the best idea at the time, or if it should be
remote.sshCommand or whatever.

But if we introduced a more specific sshCommandSomething having it there
instead of ... well, damn, I forgot that we have ssh.variant :)

Anyway, as noted (and I feel I have to comment as the originator of this
thread) I think the bikeshedding about namespacing is less important
than making sure from a user perspective that these are discoverable.

E.g. core.sshCommand doesn't reference ssh.variant or the other way
around, and in my "man git-config" they're at ~25% and ~90% in to what's
now a *huge* document. You need to read the whole thing or have the
foresight to search through it to discover both.

So for core.sshCommand and ssh.variant, and core.sparse* and sparse.*
cross-linking etc. would go a long way...

Aside: I do have some local patches (waiting on a couple of other things
I have outstanding) to add a "CONFIGURATION" section to all of the
built-in commands with some including/splitting up of
Documentation/config**.txt, so "man git-sparse-checkout" would have a
section listing the subset of "git-config" applicable to the command.