Jeff King <peff@xxxxxxxx> writes: > On Fri, Dec 02, 2016 at 11:15:13PM +0100, Andreas Krey wrote: > >> --only is implied when paths are present, and required >> them unless --amend. But with --allow-empty it should >> be allowed as well - it is the only way to create an >> empty commit in the presence of staged changes. > > OK. I'm not sure why you would want to create an empty commit in such a > case. But I do agree that this seems like a natural outcome for "--only > --allow-empty". So whether it is particularly useful or not, it seems > like the right thing to do. The patch itself looks good to me. Slightly related topic. >> - if (argc == 0 && (also || (only && !amend))) >> + if (argc == 0 && (also || (only && !amend && !allow_empty))) >> die(_("No paths with --include/--only does not make sense.")); >> if (argc == 0 && only && amend) >> only_include_assumed = _("Clever... amending the last one with dirty index."); > We allow "-o --amend" without no pathspec because that is how you would reword without changing the tree object in the tip commit, and we reward the user who figured out such an esoteric use with a message "Clever...". I do not think if people who say "I want to create an empty commit but I already have added changes to the index" deserve the same "Clever..." praise, so I will not suggest adding another message above. More seriously, I suspect that the message outlived its usefulness. If we wanted to make the "use --amend -o without pathspec if you want to reword the tip one without touching its tree" easier to discover, the place to do so is in the documentation, not a message that is given as a reward to those who already discovered it.