Subject: Re: [RFC PATCH 4/4] color.ui config: add "isatty" setting

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Thu, 31 May 2018 09:07:23 +0200

On Wed, May 30 2018, Junio C Hamano wrote:

> Ævar Arnfjörð Bjarmason  <[email-masked]> writes:
>
>> A co-worker of mine who was using UNIX systems when dinosaurs roamed
>> the earth was lamenting that kids these days were using tools like
>> "git" that thought they knew better than isatty(3) when deciding
>> whether or not something was a terminal, and the state of the
>> documentation fixed earlier in this series certainly didn't help.
>>
>> So this setting is a small gift to all the UNIX graybeards out
>> there. Now they can set color.ui=isatty and only emit fancy colors in
>> situations when the gods of old intended, not whatever heuristic we've
>> decided to set "auto" to.
>
> Re-read the above again, and notice that you are *only* hinting that
> you consider difference between "auto" and "isatty" is important,
> and that your "isatty" is better, without telling what the
> difference is, let alone why you think "isatty" is better.
>
>>
>> As noted here this is *currently* the same as setting color.ui=auto &
>> color.pager=false, but I think it's good to explicitly have this
>> setting for any future changes. The reason, as now noted in the
>> documentation is that the "auto" setting may become even smarter in
>> the future and learn even deeper heuristics for when to turn itself on
>> even if isatty(3) were returning true.
>
> Do you mean s/true/false/ in the last part?

No "true" as noted in
https://public-inbox.org/git/[email-masked]/

>> At that point the fans of plain isatty(3) will become even more upset
>> at what we're doing, so let's give them a simple future-proof opt-out.
>
> You still haven't explained why "auto" that does more than "isatty"
> is and will be irritating.
>
> That's not a good way to sell a patch.

I'm not really trying to sell this thing, as noted in the CL. This is
more of a "I wrote this, does anyone find this useful?".

> Also even "isatty" still needs to do more than isatty(1) call.  The
> process that is trying to do color.ui=isatty may be talking to an
> outgoing pipe due to the use of "git -p cmd", by that time, it is
> too late to call isatty(1) and obtain the info the caller wishes to.