On Mon, Oct 16, 2017 at 07:45:46PM +0900, Junio C Hamano wrote: > Junio C Hamano <gitster@xxxxxxxxx> writes: > > [..] > > diff --git a/builtin/check-ref-format.c b/builtin/check-ref-format.c > index 1e5f9835f0..4e62852089 100644 > --- a/builtin/check-ref-format.c > +++ b/builtin/check-ref-format.c > @@ -38,12 +38,22 @@ static char *collapse_slashes(const char *refname) > > static int check_ref_format_branch(const char *arg) > { > + int nongit, malformed; > struct strbuf sb = STRBUF_INIT; > + const char *name = arg; > > - setup_git_directory(); > - if (strbuf_check_branch_ref(&sb, arg)) > + setup_git_directory_gently(&nongit); > + > + if (!nongit) > + malformed = (strbuf_check_branch_ref(&sb, arg) || > + !skip_prefix(sb.buf, "refs/heads/", &name)); > + else > + malformed = check_branch_ref_format(arg); > + Would it make sense to swap the logic and get rid of the double negative (!nongit)? > + if (malformed) > die("'%s' is not a valid branch name", arg); > - printf("%s\n", sb.buf + 11); > + printf("%s\n", name); > + strbuf_release(&sb); > return 0; > } >