git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: why does git set X in LESS env var?

From
Christoph Anton Mitterer <calestyo@scientia.org>
Date
Oct 12, 2023, 23:06 UTC
Message-ID
<ec91ff19cca3d881d4746208744663c650ebd250.camel@scientia.org>
In-Reply-To
<60f1922b12a6ef304ffa36c334348e34@manjaro.org>
On Fri, 2023-10-13 at 00:36 +0200, Dragan Simic wrote:
> It seems that "--redraw-on-quit" is a possible candidate for
> replacing 
> "-X" in the set of default options for less(1)

*If* some changes were made to how git handles this, it might perhaps be worth to consider not to touch LESS at all, but only add the required settings via command line arguments (i.e. -F -R ...).

Or perhaps only remove options from it, if they're known to break the behaviour with git (like -+R might).

I always feel configuration via env vars is a bit fragile:
- especially when one has generic names like POSIXLY_CORRECT there's
  some chance that by exporting it to one program, where one wants the
  effect, another program started off by that also gets it
  unintentionally
- generic terms may be used by multiple programs, causing problems

Also, if one can set only one LESS var in the environment, not one for less "alone", one for less with git, etc. - that is unless for programs like bat/delta which have specific own env vars to set the pager.

So if I set e.g. LESS to something, than typically only to stuff from which I believe it works as expected for any possible users. E.g. -F might be such a case.

But if I do that, git won't touch LESS and set the required -R, so I have to do that manually for git, e.g. either via git_config or by defining an alias git='LESS=FRX git'. But in both cases it would "break" again, should ever another option be needed and added by git to the default LESS (which is however only set when it's unset). And in case of an alias, there would be the additional problem, that it's typically not picked up in non-interactive shells.

Long story short, it might make sense for git, to (mostly) ignore LESS and rather invoke less with -F -R.

The problem with that in turn would of course be that it doesn't automatically propagate down, if e.g. git's pager is set to detla and delta in turn runs less. However, that's IMO litte concern, since then it's delta's duty to set -R (if it think it needs to do so), which it actually does.

Cheers, Chris.

Previous: Dragan SimicNext: Dragan Simic
Message 17 of 39 in “why does git set X in LESS env var?”
  1. Christoph Anton MittererOct 11, 2023
  2. Junio C HamanoOct 11, 2023
  3. Christoph Anton MittererOct 11, 2023
  4. Dragan SimicOct 11, 2023
  5. Christoph Anton MittererOct 11, 2023
  6. Dragan SimicOct 11, 2023
  7. Christoph Anton MittererOct 11, 2023
  8. Dragan SimicOct 12, 2023
  9. Christoph Anton MittererOct 12, 2023
  10. Dragan SimicOct 12, 2023
  11. Christoph Anton MittererOct 12, 2023
  12. Dragan SimicOct 12, 2023
  13. Christoph Anton MittererOct 12, 2023
  14. Dragan SimicOct 12, 2023
  15. Christoph Anton MittererOct 12, 2023
  16. Dragan SimicOct 12, 2023
  17. Christoph Anton MittererOct 12, 2023
  18. Dragan SimicOct 13, 2023
  19. Christoph Anton MittererOct 13, 2023
  20. Dragan SimicOct 13, 2023
  21. Jeff KingOct 12, 2023
  22. Dragan SimicOct 12, 2023
  23. Junio C HamanoOct 12, 2023
  24. Dragan SimicOct 12, 2023
  25. Junio C HamanoOct 12, 2023
  26. Dragan SimicOct 13, 2023
  27. Christoph Anton MittererOct 12, 2023
  28. Dragan SimicOct 12, 2023
  29. Thomas GuyotNov 2, 2023
  30. Dragan SimicNov 2, 2023
  31. Dragan SimicNov 2, 2023
  32. Thomas GuyotNov 2, 2023
  33. Dragan SimicNov 2, 2023
  34. Thomas GuyotNov 3, 2023
  35. Andy KoppeNov 3, 2023
  36. Dragan SimicNov 3, 2023
  37. Dragan SimicNov 3, 2023
  38. Dragan SimicNov 6, 2023
  39. Dragan SimicMar 21, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.