sequencer: preserve commit messages

sequencer calls "commit" with default options, which implies
"--cleanup=default" unless the user specified something else in their
config. This leads to cherry-picked commits getting a cleaned up commit
message, which is usually not an intended side-effect.

Make the sequencer use "--cleanup=verbatim" so that it preserves commit
messages independent of the default, unless the user has set config for "commit"
or the message is amended with -s or -x.

Reported-by: Christoph Anton Mitterer <calestyo@scientia.net>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael J Gruber
2015-03-06 14:55:32 +01:00
committed by Junio C Hamano
parent 282616c72d
commit 17d65f03e1
2 changed files with 33 additions and 0 deletions

View File

@ -358,6 +358,7 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
struct argv_array array;
int rc;
char *gpg_sign;
const char *value;
argv_array_init(&array);
argv_array_push(&array, "commit");
@ -374,6 +375,10 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
if (!opts->edit) {
argv_array_push(&array, "-F");
argv_array_push(&array, defmsg);
if (!opts->signoff &&
!opts->record_origin &&
git_config_get_value("commit.cleanup", &value))
argv_array_push(&array, "--cleanup=verbatim");
}
if (allow_empty)