git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Fabian Stelzer <fs@gigacodes.de>
To: Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Christian Couder <chriscool@tuxfamily.org>,
	Taylor Blau <me@ttaylorr.com>, Elijah Newren <newren@gmail.com>
Subject: Re: [PATCH 5/8] merge-ort: split out a separate display_update_messages() function
Date: Mon, 3 Jan 2022 13:25:05 +0100	[thread overview]
Message-ID: <20220103122505.q2unvqsdjomkkurn@fs> (raw)
In-Reply-To: <20220103121527.rhgteepqvx2may2f@fs>

On 03.01.2022 13:15, Fabian Stelzer wrote:
>On 31.12.2021 05:04, Elijah Newren via GitGitGadget wrote:
>>From: Elijah Newren <newren@gmail.com>
>>
>>No functional changes included in this patch; it's just a preparatory
>>step in anticipation of wanting to handle the printed messages
>>differently in `git merge-tree --real`.
>
>Not quite. You are missing:
> +       if (display_update_msgs)
> +               merge_display_update_messages(opt, result, stdout);
>
>in merge_switch_to_result(), which you added in the next commit. Not 
>really relevant for the series as a whole but this commit alone breaks 
>some functionality.

Sorry, just saw this was already noted on the next patch.

>
>>
>>Signed-off-by: Elijah Newren <newren@gmail.com>
>>---
>>merge-ort.c | 69 ++++++++++++++++++++++++++++-------------------------
>>merge-ort.h |  8 +++++++
>>2 files changed, 44 insertions(+), 33 deletions(-)
>>
>>diff --git a/merge-ort.c b/merge-ort.c
>>index 0342f104836..6237e2fb7fe 100644
>>--- a/merge-ort.c
>>+++ b/merge-ort.c
>>@@ -4197,6 +4197,42 @@ 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;
>>+
>>+	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,
>>@@ -4235,39 +4271,6 @@ void merge_switch_to_result(struct merge_options *opt,
>>		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;
>>-
>>-		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);
>>-	}
>>
>>	merge_finalize(opt, result);
>>}
>>diff --git a/merge-ort.h b/merge-ort.h
>>index c011864ffeb..1b93555a60b 100644
>>--- a/merge-ort.h
>>+++ b/merge-ort.h
>>@@ -70,6 +70,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);
>>-- 
>>gitgitgadget
>>

  reply	other threads:[~2022-01-03 12:25 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-31  5:03 [PATCH 0/8] RFC: Server side merges (no ref updating, no commit creating, no touching worktree or index) Elijah Newren via GitGitGadget
2021-12-31  5:03 ` [PATCH 1/8] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2021-12-31  5:03 ` [PATCH 2/8] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-01-01 20:11   ` Johannes Altmanninger
2022-01-01 20:17     ` Elijah Newren
2021-12-31  5:03 ` [PATCH 3/8] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2021-12-31  5:04 ` [PATCH 4/8] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-01-01 20:08   ` Johannes Altmanninger
2022-01-01 21:11     ` Elijah Newren
2022-01-03 12:23   ` Fabian Stelzer
2022-01-03 16:37     ` Elijah Newren
2021-12-31  5:04 ` [PATCH 5/8] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-01-03 12:15   ` Fabian Stelzer
2022-01-03 12:25     ` Fabian Stelzer [this message]
2021-12-31  5:04 ` [PATCH 6/8] merge-ort: allow update messages to be written to different file stream Elijah Newren via GitGitGadget
2022-01-01 20:08   ` Johannes Altmanninger
2022-01-01 20:19     ` Elijah Newren
2021-12-31  5:04 ` [PATCH 7/8] merge-tree: support saving merge messages to a separate file Elijah Newren via GitGitGadget
2022-01-03 12:31   ` Fabian Stelzer
2022-01-03 16:51     ` Elijah Newren
2022-01-03 17:22       ` Fabian Stelzer
2022-01-03 19:46         ` Elijah Newren
2022-01-04 13:05           ` Fabian Stelzer
2022-01-03 12:35   ` Fabian Stelzer
2022-01-03 16:55     ` Elijah Newren
2021-12-31  5:04 ` [PATCH 8/8] merge-tree: provide an easy way to access which files have conflicts Elijah Newren via GitGitGadget
2022-01-05 17:27 ` [PATCH v2 0/8] RFC: Server side merges (no ref updating, no commit creating, no touching worktree or index) Elijah Newren via GitGitGadget
2022-01-05 17:27   ` [PATCH v2 1/8] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-01-05 17:27   ` [PATCH v2 2/8] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-01-05 17:27   ` [PATCH v2 3/8] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-01-05 17:27   ` [PATCH v2 4/8] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-01-07 15:30     ` Johannes Schindelin
2022-01-07 17:26       ` Elijah Newren
2022-01-07 18:22         ` Johannes Schindelin
2022-01-07 19:15           ` Elijah Newren
2022-01-07 20:56         ` Junio C Hamano
2022-01-11 13:39           ` Johannes Schindelin
2022-01-07 18:12     ` Christian Couder
2022-01-07 19:09       ` Elijah Newren
2022-01-05 17:27   ` [PATCH v2 5/8] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-01-05 17:27   ` [PATCH v2 6/8] merge-ort: allow update messages to be written to different file stream Elijah Newren via GitGitGadget
2022-01-05 17:27   ` [PATCH v2 7/8] merge-tree: support saving merge messages to a separate file Elijah Newren via GitGitGadget
2022-01-07 18:07     ` Johannes Schindelin
2022-01-08  1:02       ` Elijah Newren
2022-01-05 17:27   ` [PATCH v2 8/8] merge-tree: provide an easy way to access which files have conflicts Elijah Newren via GitGitGadget
2022-01-05 19:09     ` Ramsay Jones
2022-01-05 19:17       ` Elijah Newren
2022-01-07 19:36     ` Johannes Schindelin
2022-01-07 22:12       ` Elijah Newren
2022-02-22 13:03         ` Johannes Schindelin
2022-01-08  1:28       ` Elijah Newren
2022-02-22 13:05         ` Johannes Schindelin
2022-01-05 20:18   ` [PATCH v2 0/8] RFC: Server side merges (no ref updating, no commit creating, no touching worktree or index) Junio C Hamano
2022-01-05 22:35     ` Elijah Newren
2022-01-07 18:46   ` Christian Couder
2022-01-07 19:59     ` Elijah Newren
2022-01-07 21:26       ` René Scharfe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220103122505.q2unvqsdjomkkurn@fs \
    --to=fs@gigacodes.de \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=me@ttaylorr.com \
    --cc=newren@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).