Dears Hamano, Elijah Newren has given two better suggestions: 1. Use 'ask' rather than 'die' 2. When erroring out 'Patch is empty', print out a tutorial information to help users using 'git commit --allow-empty' to keep recording as an empty commit. Should we continue to implement these features in current PR? Aleen > > +--empty=(die|drop|keep):: > > + By default, or when the option is set to 'die', the command > > + errors out on an input e-mail message that lacks a patch. When > > + this option is set to 'drop', skip such an e-mail message instead. > > + When this option is set to 'keep', create an empty commit, > > + recording the contents of the e-mail message as its log. > > What does 'errors out' mean? Is the am operation aborted, and the > user return to the pre-am state? Or is the am operation interrupted, > with the user being asked to choose whether to keep or drop the patch? > Or something else (my first thought was "Are you going to leave the > index locked?")? This description is not that clear. To me, the > wording suggests aborted (or worse), but what you actually implemented > was an interrupt-and-ask. > > Can I suggest using 'ask' instead of 'die'? I think that will be > clearer, and it matches the term used by git rebase --empty. > > Also, the only instructions given to the user when you interrupt > include how to skip the patch, but I don't see anything for how to > keep it. The instructions are: > ''' > Patch is empty. > When you have resolved this problem, run "git am --continue". > If you prefer to skip this patch, run "git am --skip" instead. > To restore the original branch and stop patching, run "git am --abort". > ''' > > I tried it manually, and it turns out "git am --continue" will just > spit out basically the same message again: > ''' > Applying: empty commit > No changes - did you forget to use 'git add'? > If there is nothing left to stage, chances are that something else > already introduced the same changes; you might want to skip this patch. > When you have resolved this problem, run "git am --continue". > If you prefer to skip this patch, run "git am --skip" instead. > To restore the original branch and stop patching, run "git am --abort". > ''' > > And if I try to run `git commit --allow-empty` (which I happen to > remember is the command suggested by `git rebase --empty=ask` when it > stops), then I'm given an empty editor; it is not pre-populated with > the appropriate commit message. Can the portion of the empty patch > corresponding to the commit message be added to .git/COMMIT_EDITMSG to > correct that? Also, can some extra words be printed before > interrupting to explain what to do when you want to keep the empty > commit? Something like: > """ > The current commit being applied is empty. If you wish to commit it > anyway, use: > git commit --allow-empty > """