]> git.neil.brown.name Git - git.git/commit
check-ref-format: require a repository for --branch
authorJeff King <peff@peff.net>
Fri, 14 Jul 2017 18:18:31 +0000 (14:18 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Jul 2017 19:18:53 +0000 (12:18 -0700)
commit4d03f95501ba527a85f6a1a7d916e8c66ee06f41
treec6983743bf7eb7396eb013a0858687c928dcac74
parent08f9c32463bf9e578acb7ac5f77afd36e803c6bc
check-ref-format: require a repository for --branch

When the user asks "--branch" to interpret a branch name
like "@{-1}", we have to dig the answer out of the HEAD
reflog. We can obviously only do that if we have a
repository, and indeed, running it outside a repository
causes us to hit a BUG().

We basically have two options:

  1. We can define "@{-N}" outside of a repository as "no
     such branch" and die with "not a valid brach name".

  2. We can just declare that "--branch" must be run inside
     a repository, in which case we die with "not a git
     repository".

The effect is more or less the same for "@{-N}".
Technically one can use "--branch" outside of a repository
as long as you don't use any names that actually need
interpreting. But since intrpreting is the option's
documented purpose, there doesn't seem any point in trying
to resolve vanilla names like "foo" (which we end up just
printing to stdout verbatim).

So let's go with option 2.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/check-ref-format.c
t/t1402-check-ref-format.sh