Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > Among the "in progress" commands, only git-am and git-merge do not > support --quit. Support --quit in git-am too. That's a strange way to phrase it, when the number of commands that know and do not know it are about the same. > --abort:: > Restore the original branch and abort the patching operation. > > +--quit:: > + Abort the patching operation but keep HEAD and the index > + untouched. OK, I see from the documentation of rebase that the above pair is consistent with how --abort/--quit are done over there. > @@ -2359,6 +2363,10 @@ int cmd_am(int argc, const char **argv, const char *prefix) > case RESUME_ABORT: > am_abort(&state); > break; > + case RESUME_QUIT: > + am_rerere_clear(); > + am_destroy(&state); > + break; The internal implementation detail of am_abort() is leaking out here, by saying "rerere-clear" is the only special thing other than recovering the HEAD and working tree state when abort happens. It makes readers wonder if am_rerere_clear() should become part of am_destroy(). I dunno.