Re: [PATCH] git: add -N as a short option for --no-pager
From: Phillip Wood <hidden>
Date: 2018-04-25 09:21:42
On 24/04/18 17:59, Johannes Sixt wrote:
In modern setups, less, the pager, uses alternate screen to show the content. When it is closed, it switches back to the original screen, and all content is gone.
Are you setting LESS explicitly in the environment? From the git config man page: When the LESS environment variable is unset, Git sets it to FRX (if LESS environment variable is set, Git does not change it at all). From the less man page the X option: Disables sending the termcap initialization and deinitialization strings to the terminal. This is sometimes desirable if the deinitialization string does something unnecessary, like clearing the screen. So with the default setup the output should remain on the screen. Best Wishes Phillip
quoted hunk ↗ jump to hunk
It is not uncommon to request that the output remains visible in the terminal. For this, the option --no-pager can be used. But it is a bit cumbersome to type, even when command completion is available. Provide a short option, -N, to make the option easier accessible. Signed-off-by: Johannes Sixt <redacted> --- Documentation/git.txt | 3 ++- git.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-)diff --git a/Documentation/git.txt b/Documentation/git.txt index 4767860e72..17b50b0dc6 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt@@ -11,7 +11,7 @@ SYNOPSIS [verse] 'git' [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] - [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] + [-p|--paginate|-N|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] [--super-prefix=<path>] <command> [<args>]@@ -103,6 +103,7 @@ foo.bar= ...`) sets `foo.bar` to the empty string which `git config configuration options (see the "Configuration Mechanism" section below). +-N:: --no-pager:: Do not pipe Git output into a pager.diff --git a/git.c b/git.c index ceaa58ef40..9e2d78f442 100644 --- a/git.c +++ b/git.c@@ -7,7 +7,7 @@ const char git_usage_string[] = N_("git [--version] [--help] [-C <path>] [-c <name>=<value>]\n" " [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" - " [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]\n" + " [-p | --paginate | -N | --no-pager] [--no-replace-objects] [--bare]\n" " [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n" " <command> [<args>]");@@ -81,7 +81,7 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) exit(0); } else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) { use_pager = 1; - } else if (!strcmp(cmd, "--no-pager")) { + } else if (!strcmp(cmd, "-N") || !strcmp(cmd, "--no-pager")) { use_pager = 0; if (envchanged) *envchanged = 1;