On Sun, Mar 25, 2018 at 12:10 AM, Jeff King <p...@peff.net> wrote:
> Alternatively, we could at least detect the situation that confused you:
>
> diff --git a/builtin/branch.c b/builtin/branch.c
> @@ -676,6 +676,9 @@ int cmd_branch(int argc, const char **argv, const char 
> *prefix)
> +       if (list && reflog)
> +               die(_("--reflog in list mode does not make sense"));
> +
>
> That doesn't help somebody mistakenly doing "git branch -l foo", but
> more likely they'd do "git branch -l jk/*" if they were trying to list
> branches (and then "branch" would barf with "that's not a valid branch
> name", though that may still leave them quite confused).

Assuming that existing clients of "-l" (if there are any) only invoke
"git branch -l <name>" to create a new branch, then it would be
possible to interpret "-l" as --list when <name> is an existing
branch. That is, the "-l" in "git branch -l" and "git branch -l
<existing-branch>..." is recognized as --list, and (for backward
compatibility only) the "-l" in "git branch -l <new-branch>" is still
recognized as --create-reflog.

This idea falls flat, however, if there are clients out there which
actually depend upon "git branch -l <existing-branch>" failing.

Reply via email to