[RFC PATCH 15/35] update: fake a reverse order of parents in message
flat view
STALE1927d
From: Felipe Contreras <hidden>
Date: 2021-07-05 12:32:41
Subsystem:
the rest · Maintainer:
Linus Torvalds
Signed-off-by: Felipe Contreras <redacted> --- builtin/merge.c | 1 + fmt-merge-msg.c | 21 +++++++++++++++++++-- fmt-merge-msg.h | 3 ++- t/t5563-update.sh | 10 +++++++++- 4 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/builtin/merge.c b/builtin/merge.c
index b9c6c43d8f..cb476958ad 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c@@ -1136,6 +1136,7 @@ static void prepare_merge_message(struct strbuf *merge_names, struct strbuf *mer opts.add_title = !have_message; opts.shortlog_len = shortlog_len; opts.credit_people = (0 < option_edit); + opts.reverse_parents = reverse_parents; fmt_merge_msg(merge_names, merge_msg, &opts); if (merge_msg->len)
diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c
index 0f66818e0f..1f840711cc 100644
--- a/fmt-merge-msg.c
+++ b/fmt-merge-msg.c@@ -432,6 +432,19 @@ static int dest_suppressed(const char *dest_branch) return 0; } +static void fmt_update_msg_title(struct strbuf *out, const char *current_branch) +{ + struct src_data *src_data; + strbuf_addf(out, "Merge branch '%s'", current_branch); + src_data = srcs.items[0].util; + if (src_data->branch.nr) { + const char *branch_name = src_data->branch.items[0].string; + if (!dest_suppressed(branch_name)) + strbuf_addf(out, " into %s", branch_name); + } + strbuf_addch(out, '\n'); +} + static void fmt_merge_msg_title(struct strbuf *out, const char *current_branch) {
@@ -665,8 +678,12 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out, die("error in line %d: %.*s", i, len, p); } - if (opts->add_title && srcs.nr) - fmt_merge_msg_title(out, current_branch); + if (opts->add_title && srcs.nr) { + if (opts->reverse_parents) + fmt_update_msg_title(out, current_branch); + else + fmt_merge_msg_title(out, current_branch); + } if (origins.nr) fmt_merge_msg_sigs(out);
diff --git a/fmt-merge-msg.h b/fmt-merge-msg.h
index f2ab0e0085..fbdb1c905e 100644
--- a/fmt-merge-msg.h
+++ b/fmt-merge-msg.h@@ -7,7 +7,8 @@ struct fmt_merge_msg_opts { unsigned add_title:1, - credit_people:1; + credit_people:1, + reverse_parents:1; int shortlog_len; };
diff --git a/t/t5563-update.sh b/t/t5563-update.sh
index 72d6a357a1..aabbf5a965 100755
--- a/t/t5563-update.sh
+++ b/t/t5563-update.sh@@ -7,6 +7,13 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME . ./test-lib.sh +check_msg () { + test "$2" != "master" && into=" into '$2'" + echo "Merge branch '$1'${into}" > expected + git log -1 --format=%s > actual && + test_cmp expected actual +} + test_expect_success 'setup' ' echo one > file && git add file &&
@@ -55,7 +62,8 @@ test_expect_success 'git update non-fast-forward with merge' ' git reset --hard master && git update --merge && test_cmp_rev @^2 master && - test_cmp_rev @^1 other + test_cmp_rev @^1 other && + check_msg test other ) '
--
2.32.0.36.g70aac2b1aa