On Mon, Jul 09, 2018 at 10:24:25PM +0200, Johannes Schindelin wrote:

> > 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"));
> 
> Should this not rather be
> 
> -             if (!cmit || get_revision(opts->revs))
> -                     return error("BUG: expected exactly one commit from 
> walk");
> +             if (!cmit)
> +                     return error(_("empty commit set passed"));
> +             if (get_revision(opts->revs))
> +                     return error(_("unexpected extra commit from walk"));

Yeah, you're right. I'm not sure how a single rev with no-walk would
ever turn up more than one commit, though. So I think we should probably
go with:

  if (!cmit)
        return error(_("empty commit set passed"));
  if (get_revision(opts->revs))
        BUG("unexpected extra commit from walk");

And then if we ever see that case, we can decide from there what the
right action is (though _probably_ it's just to emit an error like you
have above, it might be a sign that our single-pick logic is wrong).

I'll re-roll in that direction, and discuss further in the commit
message.

-Peff

Reply via email to