When copy&paste goes wrong, and the user e.g. tries to cherry-pick a
blob, the error message used to be:
fatal: BUG: expected exactly one commit from walk
Instead, now it is:
fatal: Can't cherry-pick a blob
Signed-off-by: Miklos Vajna <redacted>
---
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);
}
--
1.8.1.4