Jeff King <peff@xxxxxxxx> writes: > If we launch an editor for the user to create a commit > message, they may put significant work into doing so. > Typically we try to check common mistakes that could cause > the commit to fail early, so that we die before the user > goes to the trouble. > > We may still experience some errors afterwards, though; in > this case, the user is given no hint that their commit > message has been saved. Let's tell them where it is. Liberal use of atexit() for something like this makes me cringe somewhat. > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > I did not bother protecting this with advice.* config, as it is unlikely > to come up regularly. If somebody cares, they are welcome to add it on > top. > > builtin/commit.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/builtin/commit.c b/builtin/commit.c > index 20cef95..149e07d 100644 > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -116,6 +116,16 @@ static enum { > STATUS_FORMAT_PORCELAIN > } status_format = STATUS_FORMAT_LONG; > > +static int mention_abandoned_message; > +static void maybe_mention_abandoned_message(void) > +{ > + if (!mention_abandoned_message) > + return; > + advise(_("Your commit message has been saved in '%s' and will be\n" > + "overwritten by the next invocation of \"git commit\"."), > + git_path(commit_editmsg)); > +} > + > static int opt_parse_m(const struct option *opt, const char *arg, int unset) > { > struct strbuf *buf = opt->value; > @@ -848,6 +858,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix, > _("Please supply the message using either -m or -F option.\n")); > exit(1); > } > + atexit(maybe_mention_abandoned_message); > + mention_abandoned_message = 1; > } > > if (!no_verify && > @@ -1532,11 +1544,13 @@ int cmd_commit(int argc, const char **argv, const char *prefix) > if (template_untouched(&sb) && !allow_empty_message) { > rollback_index_files(); > fprintf(stderr, _("Aborting commit; you did not edit the message.\n")); > + mention_abandoned_message = 0; > exit(1); > } > if (message_is_empty(&sb) && !allow_empty_message) { > rollback_index_files(); > fprintf(stderr, _("Aborting commit due to empty commit message.\n")); > + mention_abandoned_message = 0; > exit(1); > } > > @@ -1579,6 +1593,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix) > die(_("cannot update HEAD ref")); > } > > + mention_abandoned_message = 0; > unlink(git_path("CHERRY_PICK_HEAD")); > unlink(git_path("REVERT_HEAD")); > unlink(git_path("MERGE_HEAD")); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html