Junio C Hamano  committed a833502

pager: do not dup2 stderr if it is already redirected

An earlier commit 61b8050 (sending errors to stdout under $PAGER,
2008-02-16) avoided losing the error messages that are sent to the
standard error when $PAGER is in effect by dup2'ing fd 2 to the pager.
his way, showing a tag object that points to a bad object:

$ git show tag-foo

would give the error message to the pager. However, it was not quite
right if the user did:

$ git show 2>error.log tag-foo

i.e. use the pager but store the errors in a separate file.

Signed-off-by: Junio C Hamano <>

  • Participants
  • Parent commits d2dadfe

Comments (0)

Files changed (1)

 	/* original process continues, but writes to the pipe */
 	dup2(, 1);
-	dup2(, 2);
+	if (isatty(2))
+		dup2(, 2);
 	/* this makes sure that the parent terminates after the pager */