Re: 'HEAD' is not a commit (according to git-checkout)
On Sat, May 23, 2020 at 09:07:50AM +0200, René Scharfe wrote:
Show 20 quoted lines
> > which are both correct. I wonder if there's a more elegant way to do it,
> > though (probably not, as there's definitely some heuristic parsing going
> > on to determine which checkout mode we're in; the new switch/restore
> > alternatives don't suffer as much from this).
>
> Perhaps:
>
> diff --git a/builtin/checkout.c b/builtin/checkout.c
> index e9d111bb83..24336e1017 100644
> --- a/builtin/checkout.c
> +++ b/builtin/checkout.c
> @@ -1689,7 +1689,7 @@ static int checkout_main(int argc, const char **argv, const char *prefix,
> * Try to give more helpful suggestion.
> * new_branch && argc > 1 will be caught later.
> */
> - if (opts->new_branch && argc == 1)
> + if (opts->new_branch && argc == 1 && !new_branch_info.commit)
> die(_("'%s' is not a commit and a branch '%s' cannot be created from it"),
> argv[0], opts->new_branch);
> Oh, indeed, that's way better. Want to wrap it up as a patch?
-Peff