Thread (5 messages) 5 messages, 3 authors, 2016-06-15

Re: fatal output from git-show really wants a terminal

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:45:45

On Mittwoch, 10. Dezember 2008, Tim Olsen wrote:
It appears that when outputting a fatal error, git-show will choose
stdout over stderr if stdout is a terminal and stderr is not.
This is by design.
How do I 
redirect the error but still allow stdout to be displayed?
$ git show 12345 2> /dev/null | less
~/git$ mkdir test
~/git$ cd test
~/git/test$ git init
~/git/test$ git show 12345
fatal: ambiguous argument '12345': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions
You see this through the pager.
~/git/test$ git show 12345 2> /dev/null
fatal: ambiguous argument '12345': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions
And this went through the pager as well.
~/git/test$ git show 12345 > /dev/null
fatal: ambiguous argument '12345': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions
This went straight to the terminal.

The pattern is that if stdout is a terminal, the pager is thrown up and both 
stdout and stderr of git show proper are redirected to the pager. If you 
redirect only stderr, then this redirection is actually ignored.

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help