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
Show 53 quoted lines
> > +--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
> """