merge-ort: split out a separate display_update_messages() function
This patch includes no new code; it simply moves a bunch of lines into a new function. As such, there are no functional changes. This is just a preparatory step to allow the printed messages to be handled differently by other callers, such as in `git merge-tree --write-tree`. (Patch best viewed with --color-moved --color-moved-ws=allow-indentation-change to see that it is a simple code movement.) Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1f0c3a29da
commit
a34edae68a
78
merge-ort.c
78
merge-ort.c
@ -4257,6 +4257,45 @@ static int record_conflicted_index_entries(struct merge_options *opt)
|
||||
return errs;
|
||||
}
|
||||
|
||||
void merge_display_update_messages(struct merge_options *opt,
|
||||
struct merge_result *result)
|
||||
{
|
||||
struct merge_options_internal *opti = result->priv;
|
||||
struct hashmap_iter iter;
|
||||
struct strmap_entry *e;
|
||||
struct string_list olist = STRING_LIST_INIT_NODUP;
|
||||
int i;
|
||||
|
||||
if (opt->record_conflict_msgs_as_headers)
|
||||
BUG("Either display conflict messages or record them as headers, not both");
|
||||
|
||||
trace2_region_enter("merge", "display messages", opt->repo);
|
||||
|
||||
/* Hack to pre-allocate olist to the desired size */
|
||||
ALLOC_GROW(olist.items, strmap_get_size(&opti->output),
|
||||
olist.alloc);
|
||||
|
||||
/* Put every entry from output into olist, then sort */
|
||||
strmap_for_each_entry(&opti->output, &iter, e) {
|
||||
string_list_append(&olist, e->key)->util = e->value;
|
||||
}
|
||||
string_list_sort(&olist);
|
||||
|
||||
/* Iterate over the items, printing them */
|
||||
for (i = 0; i < olist.nr; ++i) {
|
||||
struct strbuf *sb = olist.items[i].util;
|
||||
|
||||
printf("%s", sb->buf);
|
||||
}
|
||||
string_list_clear(&olist, 0);
|
||||
|
||||
/* Also include needed rename limit adjustment now */
|
||||
diff_warn_rename_limit("merge.renamelimit",
|
||||
opti->renames.needed_limit, 0);
|
||||
|
||||
trace2_region_leave("merge", "display messages", opt->repo);
|
||||
}
|
||||
|
||||
void merge_switch_to_result(struct merge_options *opt,
|
||||
struct tree *head,
|
||||
struct merge_result *result,
|
||||
@ -4294,43 +4333,8 @@ void merge_switch_to_result(struct merge_options *opt,
|
||||
fclose(fp);
|
||||
trace2_region_leave("merge", "write_auto_merge", opt->repo);
|
||||
}
|
||||
|
||||
if (display_update_msgs) {
|
||||
struct merge_options_internal *opti = result->priv;
|
||||
struct hashmap_iter iter;
|
||||
struct strmap_entry *e;
|
||||
struct string_list olist = STRING_LIST_INIT_NODUP;
|
||||
int i;
|
||||
|
||||
if (opt->record_conflict_msgs_as_headers)
|
||||
BUG("Either display conflict messages or record them as headers, not both");
|
||||
|
||||
trace2_region_enter("merge", "display messages", opt->repo);
|
||||
|
||||
/* Hack to pre-allocate olist to the desired size */
|
||||
ALLOC_GROW(olist.items, strmap_get_size(&opti->output),
|
||||
olist.alloc);
|
||||
|
||||
/* Put every entry from output into olist, then sort */
|
||||
strmap_for_each_entry(&opti->output, &iter, e) {
|
||||
string_list_append(&olist, e->key)->util = e->value;
|
||||
}
|
||||
string_list_sort(&olist);
|
||||
|
||||
/* Iterate over the items, printing them */
|
||||
for (i = 0; i < olist.nr; ++i) {
|
||||
struct strbuf *sb = olist.items[i].util;
|
||||
|
||||
printf("%s", sb->buf);
|
||||
}
|
||||
string_list_clear(&olist, 0);
|
||||
|
||||
/* Also include needed rename limit adjustment now */
|
||||
diff_warn_rename_limit("merge.renamelimit",
|
||||
opti->renames.needed_limit, 0);
|
||||
|
||||
trace2_region_leave("merge", "display messages", opt->repo);
|
||||
}
|
||||
if (display_update_msgs)
|
||||
merge_display_update_messages(opt, result);
|
||||
|
||||
merge_finalize(opt, result);
|
||||
}
|
||||
|
@ -80,6 +80,14 @@ void merge_switch_to_result(struct merge_options *opt,
|
||||
int update_worktree_and_index,
|
||||
int display_update_msgs);
|
||||
|
||||
/*
|
||||
* Display messages about conflicts and which files were 3-way merged.
|
||||
* Automatically called by merge_switch_to_result() with stream == stdout,
|
||||
* so only call this when bypassing merge_switch_to_result().
|
||||
*/
|
||||
void merge_display_update_messages(struct merge_options *opt,
|
||||
struct merge_result *result);
|
||||
|
||||
/* Do needed cleanup when not calling merge_switch_to_result() */
|
||||
void merge_finalize(struct merge_options *opt,
|
||||
struct merge_result *result);
|
||||
|
Loading…
Reference in New Issue
Block a user