branch: let branch filters imply --list
authorJeff King <peff@peff.net>
Thu, 31 Jan 2013 06:46:11 +0000 (01:46 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Feb 2013 00:37:24 +0000 (16:37 -0800)
commitd040350813986e0f4bb3aeb977077975c1552606
treeb678d552c4808396e346d9dae42503499940b906
parentde90ff81f3bba50776b934842112eeb6e69a0d23
branch: let branch filters imply --list

Currently, a branch filter like `--contains`, `--merged`, or
`--no-merged` is ignored when we are not in listing mode.
For example:

  git branch --contains=foo bar

will create the branch "bar" from the current HEAD, ignoring
the `--contains` argument entirely. This is not very
helpful. There are two reasonable behaviors for git here:

  1. Flag an error; the arguments do not make sense.

  2. Implicitly go into `--list` mode

This patch chooses the latter, as it is more convenient, and
there should not be any ambiguity with attempting to create
a branch; using `--contains` and not wanting to list is
nonsensical.

That leaves the case where an explicit modification option
like `-d` is given.  We already catch the case where
`--list` is given alongside `-d` and flag an error. With
this patch, we will also catch the use of `--contains` and
other filter options alongside `-d`.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-branch.txt
builtin/branch.c
t/t3201-branch-contains.sh