@@ -1172,7 +1172,7 @@ static int parse_and_validate_options(int argc, const char *argv[],
die(_("Only one of --include/--only/--all/--interactive/--patch can be used."));
if (argc == 0 && (also || (only && !amend && !allow_empty)))
die(_("No paths with --include/--only does not make sense."));
- cleanup_mode = get_cleanup_mode(cleanup_arg, use_editor);
+ cleanup_mode = get_cleanup_mode(cleanup_arg, use_editor, 1);
handle_untracked_files_arg(s);
@@ -172,17 +172,7 @@ static int git_sequencer_config(const char *k, const char *v, void *cb)
if (status)
return status;
- if (!strcmp(s, "verbatim"))
- opts->default_msg_cleanup = COMMIT_MSG_CLEANUP_NONE;
- else if (!strcmp(s, "whitespace"))
- opts->default_msg_cleanup = COMMIT_MSG_CLEANUP_SPACE;
- else if (!strcmp(s, "strip"))
- opts->default_msg_cleanup = COMMIT_MSG_CLEANUP_ALL;
- else if (!strcmp(s, "scissors"))
- opts->default_msg_cleanup = COMMIT_MSG_CLEANUP_SPACE;
- else
- warning(_("invalid commit message cleanup mode '%s'"),
- s);
+ opts->default_msg_cleanup = get_cleanup_mode(s, 0, 0);
free((char *)s);
return status;
@@ -512,7 +502,7 @@ static int fast_forward_to(struct repository *r,
}
enum commit_msg_cleanup_mode get_cleanup_mode(const char *cleanup_arg,
- int use_editor)
+ int use_editor, int die_on_error)
{
if (!cleanup_arg || !strcmp(cleanup_arg, "default"))
return use_editor ? COMMIT_MSG_CLEANUP_ALL :
@@ -526,8 +516,12 @@ enum commit_msg_cleanup_mode get_cleanup_mode(const char *cleanup_arg,
else if (!strcmp(cleanup_arg, "scissors"))
return use_editor ? COMMIT_MSG_CLEANUP_SCISSORS :
COMMIT_MSG_CLEANUP_SPACE;
- else
- die(_("Invalid cleanup mode %s"), cleanup_arg);
+ else if (!die_on_error) {
+ warning(_("invalid cleanup mode %s, falling back to default"), cleanup_arg);
+ return use_editor ? COMMIT_MSG_CLEANUP_ALL :
+ COMMIT_MSG_CLEANUP_SPACE;
+ } else
+ die(_("invalid cleanup mode %s"), cleanup_arg);
}
void append_conflicts_hint(struct index_state *istate,
@@ -117,7 +117,7 @@ void append_signoff(struct strbuf *msgbuf, size_t ignore_footer, unsigned flag);
void append_conflicts_hint(struct index_state *istate, struct strbuf *msgbuf);
enum commit_msg_cleanup_mode get_cleanup_mode(const char *cleanup_arg,
- int use_editor);
+ int use_editor, int die_on_error);
void cleanup_message(struct strbuf *msgbuf,
enum commit_msg_cleanup_mode cleanup_mode, int verbose);