merge: decide if we auto-generate the message early in collect_parents()
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
Apr 25, 2015 at 18:39 UTC
770380156dd06cd03d83957d55484f4a98ad284f
1 file changed
+9
-7
builtin/merge.c
+9
-7
@@ -1098,6 +1098,10 @@ static struct commit_list *collect_parents(struct commit *head_commit,
1098
int i;
1099
struct commit_list *remoteheads = NULL;
1100
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;
1105
1106
if (head_commit)
1107
remotes = &commit_list_insert(head_commit, remotes)->next;
@@ -1111,15 +1115,13 @@ static struct commit_list *collect_parents(struct commit *head_commit,
1115
1116
remoteheads = reduce_parents(head_commit, head_subsumed, remoteheads);
1117
1114
- if (merge_msg &&
1115
- (!have_message || shortlog_len)) {
1116
- struct strbuf merge_names = STRBUF_INIT;
1118
+ if (autogen) {
1119
struct commit_list *p;
1118
-
1120
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);
1125
}
1126
1127
return remoteheads;