Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
merge: make collect_parents() auto-generate the merge message
author
Junio C Hamano
<gitster@pobox.com>
Sun, 26 Apr 2015 01:34:22 +0000
(18:34 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 29 Apr 2015 20:24:40 +0000
(13:24 -0700)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/merge.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
52fecab
)
diff --git
a/builtin/merge.c
b/builtin/merge.c
index a972ed6422f3de693f217ef7169ced924fd19402..9f9853876bb3345a1d7e9746c35f13ffbf06498f 100644
(file)
--- a/
builtin/merge.c
+++ b/
builtin/merge.c
@@
-1092,7
+1092,8
@@
static void prepare_merge_message(struct strbuf *merge_names, struct strbuf *mer
static struct commit_list *collect_parents(struct commit *head_commit,
int *head_subsumed,
static struct commit_list *collect_parents(struct commit *head_commit,
int *head_subsumed,
- int argc, const char **argv)
+ int argc, const char **argv,
+ struct strbuf *merge_msg)
{
int i;
struct commit_list *remoteheads = NULL;
{
int i;
struct commit_list *remoteheads = NULL;
@@
-1108,7
+1109,20
@@
static struct commit_list *collect_parents(struct commit *head_commit,
remotes = &commit_list_insert(commit, remotes)->next;
}
remotes = &commit_list_insert(commit, remotes)->next;
}
- return reduce_parents(head_commit, head_subsumed, remoteheads);
+ remoteheads = reduce_parents(head_commit, head_subsumed, remoteheads);
+
+ if (merge_msg &&
+ (!have_message || shortlog_len)) {
+ struct strbuf merge_names = STRBUF_INIT;
+ struct commit_list *p;
+
+ for (p = remoteheads; p; p = p->next)
+ merge_name(merge_remote_util(p->item)->name, &merge_names);
+ prepare_merge_message(&merge_names, merge_msg);
+ strbuf_release(&merge_names);
+ }
+
+ return remoteheads;
}
int cmd_merge(int argc, const char **argv, const char *prefix)
}
int cmd_merge(int argc, const char **argv, const char *prefix)
@@
-1222,7
+1236,8
@@
int cmd_merge(int argc, const char **argv, const char *prefix)
if (fast_forward == FF_NO)
die(_("Non-fast-forward commit does not make sense into "
"an empty head"));
if (fast_forward == FF_NO)
die(_("Non-fast-forward commit does not make sense into "
"an empty head"));
- remoteheads = collect_parents(head_commit, &head_subsumed, argc, argv);
+ remoteheads = collect_parents(head_commit, &head_subsumed,
+ argc, argv, NULL);
remote_head = remoteheads->item;
if (!remote_head)
die(_("%s - not something we can merge"), argv[0]);
remote_head = remoteheads->item;
if (!remote_head)
die(_("%s - not something we can merge"), argv[0]);
@@
-1248,7
+1263,8
@@
int cmd_merge(int argc, const char **argv, const char *prefix)
head_arg = argv[1];
argv += 2;
argc -= 2;
head_arg = argv[1];
argv += 2;
argc -= 2;
- remoteheads = collect_parents(head_commit, &head_subsumed, argc, argv);
+ remoteheads = collect_parents(head_commit, &head_subsumed,
+ argc, argv, NULL);
} else {
/* We are invoked directly as the first-class UI. */
head_arg = "HEAD";
} else {
/* We are invoked directly as the first-class UI. */
head_arg = "HEAD";
@@
-1258,16
+1274,8
@@
int cmd_merge(int argc, const char **argv, const char *prefix)
* the standard merge summary message to be appended
* to the given message.
*/
* the standard merge summary message to be appended
* to the given message.
*/
- remoteheads = collect_parents(head_commit, &head_subsumed, argc, argv);
-
- if (!have_message || shortlog_len) {
- struct strbuf merge_names = STRBUF_INIT;
-
- for (p = remoteheads; p; p = p->next)
- merge_name(merge_remote_util(p->item)->name, &merge_names);
- prepare_merge_message(&merge_names, &merge_msg);
- strbuf_release(&merge_names);
- }
+ remoteheads = collect_parents(head_commit, &head_subsumed,
+ argc, argv, &merge_msg);
}
if (!head_commit || !argc)
}
if (!head_commit || !argc)