Re: Cygwin + git log = no pager!
- From
Jeff King <peff@peff.net>
- Date
- Feb 26, 2014, 09:26 UTC
- Message-ID
- <20140226092610.GB32537@sigill.intra.peff.net>
- In-Reply-To
- <CAHd499BDBgaAZFkoc=S9i9hG=NifAmqhaW86fqgkzjShZd07ww@mail.gmail.com>
On Mon, Feb 24, 2014 at 01:34:34PM -0600, Robert Dailey wrote:
Show 6 quoted lines
> So I set GIT_PAGER to 'echo custom pager' as you instructed, and I > noticed that wasn't being printed when I ran my git log alias. So what > I did after that was set GIT_TRACE=1 and here is the output I see > before my logs start printing: > [...] > Does using an alias have something to do with this?
The aliases shouldn't matter (and I constructed a scenario like the one you showed and it starts the pager for me on Linux). It's more like git is deciding not to show a pager at all (e.g., it thinks your stdout is not a tty). Does running:
git log
not use a pager, but:
git -p log
does? In that case, I think that your stdout is not a tty for some reason.
If that is the case, try:
git -p lg
That _should_ turn on the pager, but I think it does not due to a bug with setup_pager and aliases. Something like the patch below would make it work (but if you are having to use "-p" manually, there is something to fix in your cygwin environment, which does not think you are on a terminal).
-Peff
---
diff --git a/cache.h b/cache.h index dc040fb..ecc410e 100644 --- a/cache.h +++ b/cache.h @@ -1238,6 +1238,7 @@ static inline ssize_t write_str_in_full(int fd, const char *str) /* pager.c */ extern void setup_pager(void); +extern void setup_pager_with_options(int stdout_is_tty); extern const char *pager_program; extern int pager_in_use(void); extern int pager_use_color; diff --git a/git.c b/git.c index 7cf2953..ad54891 100644 --- a/git.c +++ b/git.c @@ -27,7 +27,7 @@ static void commit_pager_choice(void) { setenv("GIT_PAGER", "cat", 1); break; case 1: - setup_pager(); + setup_pager_with_options(1); break; default: break; diff --git a/pager.c b/pager.c index 0cc75a8..b28125d 100644 --- a/pager.c +++ b/pager.c @@ -62,7 +62,12 @@ const char *git_pager(int stdout_is_tty) void setup_pager(void) { - const char *pager = git_pager(isatty(1)); + setup_pager_with_options(isatty(1)); +} + +void setup_pager_with_options(int stdout_is_tty) +{ + const char *pager = git_pager(stdout_is_tty); if (!pager || pager_in_use()) return;