# git log --quiet bug?

6 messages from 2011-11-08 to 2011-11-09. Participants: Prasad Deshpande, Jeff King, Junio C Hamano.
Thread: https://gitlist.dev/t/28887

## Prasad Deshpande, 2011-11-08 14:36

Subject: git log --quiet bug?
Message-ID: <1320762978.3614.YahooMailNeo@web84005.mail.mud.yahoo.com>
URL: https://gitlist.dev/e/1320762978.3614.YahooMailNeo%40web84005.mail.mud.yahoo.com

```


Hi,

  I am new to the list so please let me know if I need to take this question somewhere else.

  I am seeing a bug with git log --quiet. It doesn't seem to be quiet :-). Also I have seen cases where the exit status returned is not correct i.e. its 0 even if there is some output (although I cant seem to reproduce that problem at present).

--------------------------------------------------
[~/Work/ws/tools-common] git --version
git version 1.7.0.4

$ git log origin..HEAD 
commit 632ff3eed4004ad76b7cd253643c66ce0f9223f1
Author: XXX
Date:   Tue Nov 8 09:30:31 2011 -0500

    test
$ git log origin..HEAD --quiet
commit 632ff3eed4004ad76b7cd253643c66ce0f9223f1
Author: XXX
Date:   Tue Nov 8 09:30:31 2011 -0500

    test
[~/Work/ws/tools-common] echo $?
1
--------------------------------------------------


thanks
-prasad

```

## Jeff King, 2011-11-08 21:29

Subject: Re: git log --quiet bug?
Message-ID: <20111108212930.GA18529@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20111108212930.GA18529%40sigill.intra.peff.net
In-Reply-To: <1320762978.3614.YahooMailNeo@web84005.mail.mud.yahoo.com>

```
On Tue, Nov 08, 2011 at 06:36:18AM -0800, Prasad Deshpande wrote:

>   I am seeing a bug with git log --quiet. It doesn't seem to be quiet
> :-). Also I have seen cases where the exit status returned is not
> correct i.e. its 0 even if there is some output (although I cant seem
> to reproduce that problem at present).

I think the description of "--quiet" in the git-log manpage is
accidentally inherited by including the diff options. In "git diff", it
stops output and makes the exit code useful for determining whether
there were changes. But what does the exit code even mean in the context
of "git log"?

It does look like there is code in "git log" to handle --quiet, and
convert it to "no diff output" (i.e., like "-s"). But it doesn't seem to
do anything. If I manually specify a format like "git log -p --quiet", I
still get output. And if I don't say "-p", then I wouldn't get diff
output anyway. It does seem to have an impact on other log variants that
have output by default (e.g., "git whatchanged --quiet" won't show the
usual raw diffs).

I think we should probably just excise it from the git-log manpage, like
this:

-- >8 --
Subject: [PATCH] docs: don't mention --quiet or --exit-code in git-log(1)

These are diff-options, but they don't actually make sense
in the context of log.

Signed-off-by: Jeff King <peff@peff.net>
---
 Documentation/diff-options.txt |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index 08b581f..9f7cba2 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -412,15 +412,17 @@ endif::git-format-patch[]
 --function-context::
 	Show whole surrounding functions of changes.
 
 ifndef::git-format-patch[]
+ifndef::git-log[]
 --exit-code::
 	Make the program exit with codes similar to diff(1).
 	That is, it exits with 1 if there were differences and
 	0 means no differences.
 
 --quiet::
 	Disable all output of the program. Implies `--exit-code`.
+endif::git-log[]
 endif::git-format-patch[]
 
 --ext-diff::
 	Allow an external diff helper to be executed. If you set an
-- 
1.7.7.2.7.g9f96f

```

## Junio C Hamano, 2011-11-08 21:37

Subject: Re: git log --quiet bug?
Message-ID: <7v7h3axplq.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v7h3axplq.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20111108212930.GA18529@sigill.intra.peff.net>

```
Thanks, the patch makes sense to me.

```

## Jeff King, 2011-11-08 23:20

Subject: Re: git log --quiet bug?
Message-ID: <20111108232043.GA21957@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20111108232043.GA21957%40sigill.intra.peff.net
In-Reply-To: <1320791465.67359.YahooMailNeo@web84006.mail.mud.yahoo.com>

```
On Tue, Nov 08, 2011 at 02:31:05PM -0800, Prasad Deshpande wrote:

> Thanks for your response. I was actually trying to write a script to
> determine if a workspace has commits which haven't been pushed to the
> repository. 
> For this I was using the following in a bash script:
> 
>   ..
>   git log origin..HEAD --quiet
>   if [ $? -ne 0 ]
>   then
>     echo
> 
>     echo "git log shows files committed but not pushed.. ABORTING"
>     echo
>     echo "************* `pwd` ***************"
>     git log origin..HEAD --color --graph --stat
>     exit 1
>   fi
> 
>   What is the recommended way to do this?

Try:

  test -z "$(git rev-list -1 origin..HEAD)" &&
  echo nothing that needs pushing

You can also use --count to get the exact number, but if you just care
whether there is something or nothing, using "-1" lets git stop the
graph traversal immediately.

-Peff

```

## Junio C Hamano, 2011-11-09 00:04

Subject: Re: git log --quiet bug?
Message-ID: <7vy5vqw47x.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vy5vqw47x.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20111108232043.GA21957@sigill.intra.peff.net>

```
Jeff King <peff@peff.net> writes:

> Try:
>
>   test -z "$(git rev-list -1 origin..HEAD)" &&
>   echo nothing that needs pushing
>
> You can also use --count to get the exact number, but if you just care
> whether there is something or nothing, using "-1" lets git stop the
> graph traversal immediately.

Doesn't some variant of "branch -v" show the ahead/behind information for
all branches?

```

## Jeff King, 2011-11-09 00:59

Subject: Re: git log --quiet bug?
Message-ID: <20111109005927.GA25876@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20111109005927.GA25876%40sigill.intra.peff.net
In-Reply-To: <7vy5vqw47x.fsf@alter.siamese.dyndns.org>

```
On Tue, Nov 08, 2011 at 04:04:50PM -0800, Junio C Hamano wrote:

> Jeff King <peff@peff.net> writes:
> 
> > Try:
> >
> >   test -z "$(git rev-list -1 origin..HEAD)" &&
> >   echo nothing that needs pushing
> >
> > You can also use --count to get the exact number, but if you just care
> > whether there is something or nothing, using "-1" lets git stop the
> > graph traversal immediately.
> 
> Doesn't some variant of "branch -v" show the ahead/behind information for
> all branches?

Yeah, but I thought the question was how to figure this out
programatically in a script.

-Peff

```
