Skip to content

Commit 7703801

Browse files
committed
merge: decide if we auto-generate the message early in collect_parents()
Signed-off-by: Junio C Hamano <[email protected]>
1 parent 1cf32f4 commit 7703801

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

builtin/merge.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,6 +1098,10 @@ static struct commit_list *collect_parents(struct commit *head_commit,
10981098
int i;
10991099
struct commit_list *remoteheads = NULL;
11001100
struct commit_list **remotes = &remoteheads;
1101+
struct strbuf merge_names = STRBUF_INIT, *autogen = NULL;
1102+
1103+
if (merge_msg && (!have_message || shortlog_len))
1104+
autogen = &merge_names;
11011105

11021106
if (head_commit)
11031107
remotes = &commit_list_insert(head_commit, remotes)->next;
@@ -1111,15 +1115,13 @@ static struct commit_list *collect_parents(struct commit *head_commit,
11111115

11121116
remoteheads = reduce_parents(head_commit, head_subsumed, remoteheads);
11131117

1114-
if (merge_msg &&
1115-
(!have_message || shortlog_len)) {
1116-
struct strbuf merge_names = STRBUF_INIT;
1118+
if (autogen) {
11171119
struct commit_list *p;
1118-
11191120
for (p = remoteheads; p; p = p->next)
1120-
merge_name(merge_remote_util(p->item)->name, &merge_names);
1121-
prepare_merge_message(&merge_names, merge_msg);
1122-
strbuf_release(&merge_names);
1121+
merge_name(merge_remote_util(p->item)->name, autogen);
1122+
1123+
prepare_merge_message(autogen, merge_msg);
1124+
strbuf_release(autogen);
11231125
}
11241126

11251127
return remoteheads;

0 commit comments

Comments
 (0)