Web lists-archives.com

Re: Bug: git branch returns EXIT_SUCCESS when no branches found

Junio C Hamano <gitster@xxxxxxxxx> writes:

> The list mode ...
> ... can
> also limit the branches whose tip commits can reach a named commit
> with the "--contains".
> 	$ DEV_BRANCH=cs/topic
> 	$ git branch --contains master "$DEV_BRANCH"
> asks the subcommand to show only the branches that can reach the
> commit at the tip of 'master', *AND* whose name match cs/topic.  So
> it may show the cs/topic branch (and nothing else, even there are
> cs/topic1 or cs/topic/2 branches) if and only if that branch
> can reach the tip of 'master'.

One crucial bit is missing from my response.  In general, a git
subcommand that shows zero or more things in response to a request
to list things that match criteria does *NOT* consider it an error
to make a request that happens to produce a zero result.  The above
command will exit with non-zero status if 'master' does not name a
commit.  But if cs/topic branch does not exist, of if the branch
does not contain 'master', the command will show "here are the
branches that match the criteria you gave me" by giving no lines in
its standard output, and exits with 0 to signal that what you see on
the screen indeed was computed correctly (as opposed to the command
internally crashing and failing to produce a result, in which case
you would want to be told with non-zero exit status).