git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] cherry-pick: better error message when the parameter is a non-commit

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 8, 2013, 16:56 UTC
Message-ID
<7v38v1yn8o.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20130403092704.GC21520@suse.cz>
Miklos Vajna <vmiklos@suse.cz> writes:
> When copy&paste goes wrong, and the user e.g. tries to cherry-pick a
> blob, the error message used to be:

It is the other way around. When the user tries to cherry-pick a non-commit we say a correct but nonspecific "expected one commit", and it does not matter how the user threw a non-commit at us. One possibility could be copy&paste going wrong.

Show 5 quoted lines
> 	fatal: BUG: expected exactly one commit from walk
>
> Instead, now it is:
>
> 	fatal: Can't cherry-pick a blob

I wonder what we would do when "git cherry-pick master: next" is given. That is not "single commit input" case and not covered by this patch, but perhaps something we may want to diagnose?

In other words, perhaps we would want to inspect pending objects before running prepare_revision_walk and make sure everybody is commit-ish or something?

Show 26 quoted lines
>
> Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
> ---
>  sequencer.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/sequencer.c b/sequencer.c
> index baa0310..0ac00d4 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -1082,8 +1082,15 @@ int sequencer_pick_revisions(struct replay_opts *opts)
>  		if (prepare_revision_walk(opts->revs))
>  			die(_("revision walk setup failed"));
>  		cmit = get_revision(opts->revs);
> -		if (!cmit || get_revision(opts->revs))
> +		if (!cmit || get_revision(opts->revs)) {
> +			unsigned char sha1[20];
> +			if (!get_sha1(opts->revs->cmdline.rev->name, sha1)) {
> +				enum object_type type = sha1_object_info(sha1, NULL);
> +				if (type > 0 && type != OBJ_COMMIT)
> +					die(_("Can't cherry-pick a %s"), typename(type));
> +			}
>  			die("BUG: expected exactly one commit from walk");
> +		}
>  		return single_pick(cmit, opts);
>  	}
Previous: Junio C HamanoNext: Miklos Vajna
Message 4 of 17 in “cherry-pick: better error message when the parameter is a non-commit”
  1. cherry-pick: better error message when the parameter is a non-commitMiklos Vajna, Apr 3, 2013
  2. Miklos VajnaApr 8, 2013
  3. Junio C HamanoApr 8, 2013
  4. Junio C HamanoApr 8, 2013
  5. cherry-pick: make sure all input objects are commitsMiklos Vajna, Apr 11, 2013
  6. Ramkumar RamachandraApr 11, 2013
  7. Miklos VajnaApr 11, 2013
  8. Ramkumar RamachandraApr 11, 2013
  9. cherry-pick: make sure all input objects are commitsMiklos Vajna, Apr 11, 2013
  10. Ramkumar RamachandraApr 11, 2013
  11. Thomas RastApr 15, 2013
  12. Junio C HamanoApr 15, 2013
  13. Junio C HamanoApr 15, 2013
  14. Michael HaggertyApr 16, 2013
  15. Junio C HamanoMay 9, 2013
  16. Junio C HamanoMay 9, 2013
  17. Miklos VajnaMay 10, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.