Hi Edmundo, On Wed, Oct 21, 2020 at 12:24:30AM -0600, Edmundo Carmona Antoranz wrote: > Currently, if 'git cherry-pick --no-commit' is run _and the cherry-pick > operation is successful_, the metadata from the original revision is lost and > to git it's like a cherry-pick operation is not taking place at all. Hence, > we can't wrap up the cherry-pick operation by calling > 'git cherry-pick --continue'. Interesting. > diff --git a/sequencer.c b/sequencer.c > index 00acb12496..c1ccbe0faf 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -2022,9 +2022,8 @@ static int do_pick_commit(struct repository *r, > * However, if the merge did not even start, then we don't want to > * write it at all. > */ > - if ((command == TODO_PICK || command == TODO_REWORD || > - command == TODO_EDIT) && !opts->no_commit && > - (res == 0 || res == 1) && > + if ((command == TODO_PICK || command == TODO_REWORD || command == TODO_EDIT) > + && ((res == 0 && opts->no_commit) || (res == 1 && !opts->no_commit)) && > update_ref(NULL, "CHERRY_PICK_HEAD", &commit->object.oid, NULL, > REF_NO_DEREF, UPDATE_REFS_MSG_ON_ERR)) > res = -1; > -- > 2.28.0 Hmm. I'm a little confused after reading your patch below. Why does (res == 0) change to (res == 0 && opts->no_commit)? Wouldn't we still want to update our CHERRY_PICK_HEAD even if "res == 0 && !opts->no_commit"? Even still, this patch as it is seems to fail a number of tests. You can run the tests yourself by running "make && make test", and there is more information about that in t/README. Thanks, Taylor