Re: [PATCH 3/3] advice: allow disabling the automatic hint in advise_if_enabled()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2024-01-10 17:22, Junio C Hamano wrote:
Dragan Simic <dsimic@xxxxxxxxxxx> writes:

No worries.  Regarding disabling the advices for disabling the advice
messages, maybe it would be better to have only one configuration knob
for that purpose, e.g. "core.verboseAdvice", as a boolean knob.

I am not sure if you understood Peff's example that illustrates why
it is a bad thing, as ...

That
way, fishing for the right knob for some advice message wouldn't turn
itself into an issue,

... this is exactly what a single core.verboseAdvice knob that
squelches the "how to disable this particular advice message" part
from the message is problematic.  Before you see and familialize
yourself with all advice messages, you may see one piece of advice X
and find it useful to keep, feeling no need to turn it off.  If you
use that single knob to squelch the part to tell you how to turn
advice X off.  But what happens when you hit another unrelated
advice Y then?  Because your core.verboseAdvice is a single big red
button, the message does not say which advice.* variable to tweak
for this particular advice message Y.

Makes sense, but please allow me to explain how I envisioned the whole thing
with the single, big core.verboseAdvice configuration knob:

1) You use git and find some advice useful, so you decide to keep it displayed. However, the additional advice about turning the advice off becomes annoying a bit, or better said, it becomes redundant because the main advice stays.

2) As a result, you simply set core.verboseAdvice to false and voila, the redundant additional advice disappears. Seems perfect! Of course, it
   isn't perfect, as the next point will clearly show.

3) You keep using git, and some advice becomes no longer needed, maybe even one of the advices that you previously used to find useful, or you find some newly added advice a bit annoying and, as a result, not needed. But,
   what do you do, where's that helpful additional advice?

4) As a careful git user that remembers important things, you go back to your git configuration file and set core.verboseAdvice to true, and the additional
   advices are back, telling you how to disable the unwanted advice.

5) After you disable the unwanted advice, you set core.verboseAdvice back to
   false and keep it that way until the next redundant advice pops up.

However, I do see that this approach has its downsides, for example the need for the unwanted advice to be displayed again together with the additional advice, by executing the appropriate git commands, after the above-described point #4.

Let's see what it would look like with the granular, per-advice on/off knobs:

1) You use git and find some advice useful, so you decide to keep it displayed. However, the additional advice about turning the advice off becomes annoying a bit, or better said, it becomes redundant because the main advice stays.

2) As a result, you follow the additional advice and set the specific knob to false, and voila, the redundant additional advice disappears. Of course,
   it once again isn't perfect, as the next point will clearly show.

3) You keep using git, and one of the advices that you previously used to find useful becomes no longer needed. But, what do you do, where's that helpful
   additional advice telling you how to turn the advice off?

4) Now you need to dig though the manual pages, or to re-enable the additional advices in your git configuration file, perhaps all of them at once, while keeping a backup of your original settings, to restore it later. Then, you
   again need to wait until the original advice gets displayed.

5) The additional advice is finally back, after some time passes or after specifically reproducing the exact git commands, telling you how to disable the unwanted advice. Of course, you follow the advice and set the right
   knob in your git configuration file.

5) After you disable the unwanted advice, you restore the git configuration backup that you made earlier (you did that, right?), taking care not to
   override the newly made changes that disabled the unwanted advice.

Quite frankly, the second approach, although more granular, seems much more
complicated and more error-prone to me.

Of course, please let me know if I'm missing something obvious.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux