When cherry-picking a single commit, we go through a special code path that avoids creating a sequencer todo list at all. This path expects our revision parsing to turn up exactly one commit, and dies with a BUG if it doesn't. But it's actually quite easy to fool. For example: $ git cherry-pick --author=no.such.person HEAD error: BUG: expected exactly one commit from walk fatal: cherry-pick failed This isn't a bug; it's just bogus input. Let's drop the "BUG" to make it clear that the input is the problem. And let's also use the phrase "empty commit set passed", which matches what we say when we do a real revision walk and it turns up empty. This BUG dates back to 7acaaac275 (revert: allow single-pick in the middle of cherry-pick sequence, 2011-12-10), and could be triggered in the same way even then. So clearly this outcome is unexpected. Another approach would be to make the conditional from 7acaaac275 smarter, and avoid even entering this single-pick case. But since the action is identical either way (we have nothing to pick, so we exit) there's not much point in trying to distinguish the two. Signed-off-by: Jeff King <peff@xxxxxxxx> --- sequencer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sequencer.c b/sequencer.c index f692b2ef44..234666b980 100644 --- a/sequencer.c +++ b/sequencer.c @@ -3637,7 +3637,7 @@ int sequencer_pick_revisions(struct replay_opts *opts) return error(_("revision walk setup failed")); cmit = get_revision(opts->revs); if (!cmit || get_revision(opts->revs)) - return error("BUG: expected exactly one commit from walk"); + return error(_("empty commit set passed")); return single_pick(cmit, opts); } -- 2.18.0.400.g702e398724