Re: [PATCH] Allow git-diff exit with codes similar to diff(1)
- From
Alex Riesen <raa.lkml@gmail.com>
- Date
- Mar 14, 2007, 08:37 UTC
- Message-ID
- <81b0412b0703140137i6d0df44aua9205e81249570ea@mail.gmail.com>
- In-Reply-To
- <Pine.LNX.4.63.0703140237270.22628@wbgn013.biozentrum.uni-wuerzburg.de>
On 3/14/07, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 21 quoted lines
> > > So, big master to hom everybody bows, how to return the correct value > > > when executing a pager? Because this _has_ to be done if we go that > > > way. > > > > Why? If you execute the pager, nobody cares about the error value > > anyway. > > > > I don't see why you would mix in a pager here. If you do > > > > diff -u file1 file2 | less -S > > > > the return value of the pipe will not only generally be totally > > uninteresting and never used, but it will be the return value of "less" > > anyway. Which is what we'd get quite naturally. > > The thing is, most people do not realize that > > git diff file1 file2 > > _will_ execute a pager. As foreground process. And the return value is > that of the pager.
In this example this is obviously (sometimes it is obscurely) interactive. The return code is seldom expected.
More sneaky case could be this:
git diff file1 file2 > tmp && do_something rm -f tmp
But we have isatty in setup_pager, so this works properly.