Subject: Re: The git spring cleanup challenge

From: Junio C Hamano <[email-masked]>
Date: Thu, 03 Jun 2021 09:06:34 +0900

Sergey Organov <[email-masked]> writes:

>>> [push]
>>> 	default = simple
>>
>> This is the default, you don't need it.
>
> Yep, a remnant from the past.

This reminds me of something.

This particular remnant is there because the user was an early
adopter from the days before the 'simple' setting was made the
default, and it is a common pattern in our configuration variable
settings.  We introduce a knob to allow early adopters to experience
new settings, and after a while, one of them may become the default,
and at that point, the setting the user has appears redundant.

If we had a central registry of configuration variables and their
default values (there isn't one), one could write a configuration
linter to point out "you have this set, but it is the default these
days" to remind you, which sometimes may be useful.

I say "sometimes" because the reason why the user has a seemingly
redundant setting may be because the default for the variable in
question is planned to change, and the user has it set to keep the
current default---the opposite of the 'early adopter' use case.

Being reminded may still be useful in such a case, but the linter
tool certainly should not make any change blindly in the name of
removing redundant setting without consulting the user.