On Tue, Jul 02, 2019 at 04:03:09PM +0700, Duy Nguyen wrote: > On Tue, Jul 02, 2019 at 10:06:11AM +0200, SZEDER Gábor wrote: > > On Fri, Mar 29, 2019 at 05:38:59PM +0700, Nguyễn Thái Ngọc Duy wrote: > > > After a successful switch, if a merge, cherry-pick or revert is ongoing, > > > it is canceled. This behavior has been with us from the very early > > > beginning, soon after git-merge was created but never actually > > > documented [1]. It may be a good idea to be transparent and tell the > > > user if some operation is canceled. > > > > After this entered 'next' last week, today it greeted me with 167(!) > > of these warnings... before I even had my breakfast. > > > > Now, my script does a lot of repeated cherry-picks and expects that > > rerere is able to deal with most of the conflicts, i.e. it does > > approximately this: > > > > if ! git cherry-pick $oid >/dev/null 2>&1 > > then > > if was_the_conflict_resolved > > then > > echo "using previous conflict resolution" > > git commit --no-edit --cleanup=strip --quiet > > else > > die "uh-oh" > > fi > > fi > > > > That 'git commit' in there always prints: > > > > warning: cancelling a cherry picking in progress > > > > I don't understand why committing after a cherry-pick is considered > > "cancelling"... in my view it's finishing it and there should be no > > warning whatsoever. > > > > I agree, this is not "canceling". I think this series causes conflicts > with pw/clean-sequencer-state-upon-final-commit and the warning is > accidentally enabled (partly my fault since I named the argument > "verbose"). > > Junio, in this conflict resolution (merging nd/switch-and-restore to > next), we should pass '0' instead of 'verbose' to > sequencer_post_commit_cleanup(). > > diff --cc builtin/commit.c > index 1921401117,fa5982cc86..145d50caf0 > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@@ -1658,7 -1666,8 +1658,7 @@@ int cmd_commit(int argc, const char **a > die("%s", err.buf); > } > > - sequencer_post_commit_cleanup(the_repository); > - unlink(git_path_cherry_pick_head(the_repository)); > - unlink(git_path_revert_head(the_repository)); > ++ sequencer_post_commit_cleanup(the_repository, verbose); > unlink(git_path_merge_head(the_repository)); > unlink(git_path_merge_msg(the_repository)); > unlink(git_path_merge_mode(the_repository)); Thanks, this indeed takes care of it.