On Mon, Oct 16, 2017 at 07:45:46PM +0900, Junio C Hamano wrote:
> Junio C Hamano <[email protected]> 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;
> }
>