aboutsummaryrefslogtreecommitdiff
path: root/sequencer.c
diff options
context:
space:
mode:
authorMichael J Gruber <git@drmicha.warpmail.net>2015-03-06 14:55:32 +0100
committerJunio C Hamano <gitster@pobox.com>2015-03-06 11:11:39 -0800
commit17d65f03e1d2d1678d9960a4f71e4caccacf500f (patch)
treef982ab3cf69fccbbc2f6b8686543c5ee2fdd19aa /sequencer.c
parent282616c72d1d08a77ca4fe1186cb708c38408d87 (diff)
downloadgit-17d65f03e1d2d1678d9960a4f71e4caccacf500f.tar.gz
git-17d65f03e1d2d1678d9960a4f71e4caccacf500f.tar.xz
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>
Diffstat (limited to 'sequencer.c')
-rw-r--r--sequencer.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sequencer.c b/sequencer.c
index bbaddcb05..8b735cdd0 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -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)