All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Randall S. Becker" <rsbecker@nexbridge.com>
To: "'Felipe Contreras'" <felipe.contreras@gmail.com>, <git@vger.kernel.org>
Cc: "'Junio C Hamano'" <gitster@pobox.com>,
	git@vger.kernel.org,
	"'Ævar Arnfjörð Bjarmason'" <avarab@gmail.com>,
	"'Jeff King'" <peff@peff.net>
Subject: RE: How dow we educate our users to configure less?
Date: Mon, 28 Jun 2021 15:58:19 -0400	[thread overview]
Message-ID: <029701d76c57$f4d42f60$de7c8e20$@nexbridge.com> (raw)
In-Reply-To: <60da2692e8029_1d6fc20855@natae.notmuch>

On June 28, 2021 3:44 PM, Felipe Contreras wrote:
>Randall S. Becker wrote:
>> On June 28, 2021 3:02 PM, Felipe Contreras wrote:
>> >Randall S. Becker wrote:
>> >> On June 28, 2021 2:12 PM, Felipe Contreras wrote:
>> >> >Felipe Contreras wrote:
>> >> >> It has been suggested that we "educate our users" to configure
>> >> >> less in the right way, instead of colorizing man pages ourselves [1].
>> >> >>
>> >> >> The question is *how*? Nobody has answered that.
>> >> >>
>> >> >> This is a continuation of the thread below.
>> >> >
>> >> >> I am still waiting for an explanation.
>> >> >>
>> >> >> How does the user properly colorize man pages for both man and
>> >> >> git in a way that works in all distributions?
>> >> >
>> >> >No response.
>> >>
>> >> I think you're looking for something does not exist because it is
>> >> platform and environment dependent.
>> >
>> >Yes, but there's always some common denominator.
>> >
>> >> There are two ways to configure git to work with 'less' on NonStop
>> >> and neither is identical to Ubuntu or Windows.
>> >
>> >But I'm not talking about configuring git to work with less.
>> >
>> >Once you have less configured, how do you add colors? For example how do you turn bold into red bold?
>> >
>> >> Don't even get me started on what less does in a TSO/ISPF
>> >> environment where everything is some single colour on black unless
>> >> your emulator supports 3279 emulation.
>> >
>> >Is it even possible to add color there? I'm talking about platforms where color is possible in the first place.
>> >
>> >> >It's safe to say at this point that nobody knows what that configuration would look like.
>> >>
>> >> Nobody, perhaps, knows how to do this on every platform in the
>> >> known universe 😊. There is no "one way" to do this consistently everywhere.
>> >
>> >In the platforms where color is supported, and you have less, what does this do?
>> >
>> >  LESS_TERMCAP_md=$'\e[1;31m' LESS_TERMCAP_me=$'\e[m' git help git
>>
>> This only works in bash/shell. So if you are not initiating from a shell, you cannot use this technique.
>
>I know. The technique is not the point. You can use whatever technique you want to get LESS_TERMCAP_md and LESS_TERMCAP_me set
>on the environment before launching `git help git` in whatever way you want.
>
>Now, clearly that technique would vary platform by platform, which is precisely why I'm proposing to do it inside `git help` itself [1].
>
>Clearly this would work on every platform that has less and color and it's technique-independent:
>
>  setenv("LESS_TERMCAP_md", GIT_COLOR_BOLD_RED, 0);
>  setenv("LESS_TERMCAP_me", GIT_COLOR_RESET, 0);
>
>Would it not?

Less is obviously used across the board (git log, git help, etc.). The assumption of the same starting point for all situations is not valid. For example: my own environment runs git from the following starting points (in order of frequency):
1. Cygwin (bash, yay, easy).
2. OSS (Posix-like, bash, easy).
3. Jenkins (dumb terminal, no colours or else the output gets messed up).
4. GUARDIAN (Not at all Posix-like, I have to supply my own environment variables and the terminal emulator is not vt220 compatible).
5. USS (Posix-like, bash, easy).
6. TSO/ISPF (Not at all Posix-like, I have to supply my own environment variables and the terminal emulator is not vt220 compatible).

In the case of 2-4, this all happens on the same system. Same with 3,5,6. So I have to maintain multiple "less" profiles to maintain output sanity. I cannot do this using .bashrc or .profile because those do not apply. If I had to suffer a single definition set within git, I would lose my mind.

Admittedly, I am in a highly complex situation, but it is a real one (ok, two because of a diverged path between NonStop and MVS) and there are hundreds in a similar situation.

-Randall


  reply	other threads:[~2021-06-28 19:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-08 17:49 How dow we educate our users to configure less? Felipe Contreras
2021-06-28 18:11 ` Felipe Contreras
2021-06-28 18:46   ` Randall S. Becker
2021-06-28 19:01     ` Felipe Contreras
2021-06-28 19:34       ` Randall S. Becker
2021-06-28 19:44         ` Felipe Contreras
2021-06-28 19:58           ` Randall S. Becker [this message]
2021-06-28 20:17             ` Felipe Contreras
2021-06-28 20:37               ` Randall S. Becker
2021-06-28 20:51                 ` Felipe Contreras
2021-06-28 20:56                   ` Randall S. Becker
2021-06-28 21:09                     ` Felipe Contreras

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='029701d76c57$f4d42f60$de7c8e20$@nexbridge.com' \
    --to=rsbecker@nexbridge.com \
    --cc=avarab@gmail.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.