]> git.ipfire.org Git - thirdparty/git.git/commitdiff
merge-ort: split out a separate display_update_messages() function
authorElijah Newren <newren@gmail.com>
Sat, 18 Jun 2022 00:20:48 +0000 (00:20 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Jun 2022 23:10:06 +0000 (16:10 -0700)
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>
merge-ort.c
merge-ort.h

index b5015b9afd47777ec39652f7474ee7d34b6f0cf7..3c6d0577de3f077ca5022f4143721e72b5cfcef1 100644 (file)
@@ -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);
 }
index fe599b8786891c74cbc5e911689f4a4d319152cd..e5aec45b18f117828648c8aaa89136e94afa7a01 100644 (file)
@@ -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);