Re: Cygwin + git log = no pager!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 24, 2014 at 01:34:34PM -0600, Robert Dailey wrote:

> 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;
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]