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

Re: [PATCH RESEND] Do not override LESS

From
Jonathan Nieder <jrnieder@uchicago.edu>
Date
Aug 24, 2008, 05:28 UTC
Message-ID
<Pine.GSO.4.62.0808240019050.28567@harper.uchicago.edu>
In-Reply-To
<87k5e8i18c.fsf@cup.kalibalik.dk>
Hi,
Anders Melchiorsen wrote:
Show 6 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
> > Anders Melchiorsen <mail@cup.kalibalik.dk> writes:
> >
> >> Passing options to "less" with the LESS environment variable can
> >> interfere with existing environment variables.
[...]
Show 11 quoted lines
> >> 2. Bob sets GIT_PAGER="less -RS", but does not set LESS. Git sets
> >> LESS=FRSX before calling $GIT_PAGER. Now Bob wonders why his pager is
> >> not always paging, when he explicitly tried to clear the F option.
> >
> > 3. Christ has been happily using git with his PAGER set to "less".  He
> >    suddenly notices that output from git linewraps and the pager does not
> >    exit when showing a short output, and gets very unhappy.
> 
> Well, I noted that point already, so I had hoped for a reply
> explaining why it is a big problem. Maybe setting PAGER="less" is more
> common than I think, as I have never seen it.
On system where less is not the default pager (e.g. Solaris), it is
very common.
 
Show 5 quoted lines
> While I am wary of advocating a patch that makes Christ unhappy, the
> "3." issue is easily fixed by him setting GIT_PAGER="less -FRSX".
> 
> My concern is that without reading the source, it can be confusing to
> figure out what happens with less, $LESS and git.
So perhaps it is a documentation problem.  How about this patch?
-- %< --
Subject: Documentation: clarify pager configuration
The unwary user may not know how to disable the -FRSX options.
Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
---
 Documentation/config.txt |    9 +++++++--
 Documentation/git.txt    |    3 ++-
 2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 9020675..88638f7 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -358,8 +358,13 @@ core.editor::
 	`EDITOR` environment variables and then finally `vi`.
 
 core.pager::
-	The command that git will use to paginate output.  Can be overridden
-	with the `GIT_PAGER` environment variable.
+	The command that git will use to paginate output.  Can
+	be overridden with the `GIT_PAGER` environment
+	variable.  Note that git sets the `LESS` environment
+	variable to `FRSX` if it is unset when it runs the
+	pager.  One can change these settings by setting the
+	`LESS` variable to some other value or by giving the
+	`core.pager` option a value such as "`less -+FRSX`".
 
 core.whitespace::
 	A comma separated list of common whitespace problems to
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 1bc295d..363a785 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -497,7 +497,8 @@ other
 'GIT_PAGER'::
 	This environment variable overrides `$PAGER`. If it is set
 	to an empty string or to the value "cat", git will not launch
-	a pager.
+	a pager.  See also the `core.pager` option in
+	linkgit:git-config[1].
 
 'GIT_SSH'::
 	If this environment variable is set then 'git-fetch'
-- 
1.6.0.481.g9ef3
Previous: Anders MelchiorsenNext: Jonathan Nieder
Message 6 of 8 in “Do not override LESS”
  1. Do not override LESSAnders Melchiorsen, Aug 22, 2008
  2. Junio C HamanoAug 23, 2008
  3. Anders MelchiorsenAug 23, 2008
  4. Junio C HamanoAug 23, 2008
  5. Anders MelchiorsenAug 23, 2008
  6. Jonathan NiederAug 24, 2008
  7. Documentation: clarify pager.<cmd> configurationJonathan Nieder, Aug 24, 2008
  8. Junio C HamanoAug 24, 2008

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.