Hi Phillip,

On Sat, 14 Apr 2018, Johannes Schindelin wrote:

> On Fri, 13 Apr 2018, Phillip Wood wrote:
> 
> > On 13/04/18 11:12, Phillip Wood wrote:
> > > @@ -3030,7 +3029,8 @@ static int pick_commits(struct todo_list 
> > > *todo_list, struct replay_opts *opts)
> > >                   return error(_("unknown command %d"), item->command);
> > >  
> > >           if (res < 0 && (item->command == TODO_LABEL ||
> > > -                         item->command == TODO_RESET)) {
> > > +                         item->command == TODO_RESET ||
> > > +                         item->command == TODO_MERGE)) {
> > 
> > Unfortunately it's not as simple as that - we only want to reschedule if
> > merge_recursive() fails, not if run_git_commit() does.
> 
> Correct. How about introducing a flag `reschedule` that is passed to
> do_label(), do_reset() and do_merge()?
> 
> Seeing as do_reset() and do_merge() already have a replay_opts parameter,
> we could add a field `needs_rescheduling` and pass the replay_opts also to
> do_label().

Nevermind, we already use the trick in do_pick_commit() that -1 means:
reschedule, 0 means: success, and 1 means: merge conflicts (don't bother
rescheduling).

It just had slipped my mind; I use the same convention in do_merge() now.

Thank you so much for your review and suggestions. I *think* I
incorporated it all.

Ciao,
Dscho

Reply via email to