Re: How to undo previously set configuration? (again)
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Apr 26, 2019, 09:36 UTC
- Message-ID
- <CACsJy8B5j2K=RU7N+h-i9HszuYuYd+fNmAftVDW-4nJ_o5z8Sw@mail.gmail.com>
- In-Reply-To
- <20190425143614.GA91608@google.com>
On Thu, Apr 25, 2019 at 9:36 PM Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 18 quoted lines
> > Hi, > > Ævar Arnfjörð Bjarmason wrote: > > > Because we don't have some general config facility for this it keeps > > coming up, and various existing/proposed options have their own little > > custom hacks for doing it, e.g. this for Barret Rhoden's proposed "blame > > skip commits" feature > > https://public-inbox.org/git/878swhfzxb.fsf@evledraar.gmail.com/ > > (b.t.w. I *meant* /dev/null in that E-Mail, but due to PEBCAK wrote > > /dev/zero). > > I'm confused. Isn't that bog-standard Git usage, not a custom hack? > That is, I thought the intended behavior is always > > 1. For single-valued options, last value wins. > 2. For multi-valued options, empty clears the list.
I didn't know this! Should it be documented? At least a quick skimming through config.txt does not mention anything about empty value clearing multi-valued options.
I also wanted to see if it's true. However, the first var I checked, branch.*.merge does not follow this rule. I got disappointed and stopped.
Show 5 quoted lines
> 3. When there is a special behavior triggered by not supplying the > option at all, offer an explicit value like "default" that triggers > the same behavior, too. > > and that any instance of a command that isn't following that is a bug.
Not sure how many we need to fix. The behaviour does make sense to me though.
> Which of course leaves room for improvement in documentation and how > we organize the implementation (as Peff discussed in [1]), but isn't > it nice to already have something in place that doesn't require > inventing a new syntax?
This cannot undefine a variable though, especially those single-valued ones. But I think for most cases, the user just needs to find out what is the default value and set to that one.
I don't know if there is any case where the lack of a variable behaves differently (or the default value is too dynamic to be set manually) though.
> Thanks, > Jonahtan > > [1] https://public-inbox.org/git/20180406175044.GA32228@sigill.intra.peff.net/
-- Duy