git/list[1] front-page[2] threads[3] people[4] search[5] about
wed 2026-10-07 18:02 UTC

Re: [PATCH v2 2/2] merge: remember conflict labels

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 5, 2026, 16:31 UTC
Message-ID
<xmqqbj98kt2d.fsf@gitster.g>
In-Reply-To
<18bdf7df49dde2c8e7f73f3b46c656abb6b26293.1791206658.git.phillip.wood@dunelm.org.uk>
Phillip Wood <phillip.wood123@gmail.com> writes:
> Note that merge_switch_to_result()
> we assign "result->priv" to "opt->priv" and later clear "opt->priv" in
> order to get a pointer to the private struct as result->priv is void*.
I missed this part.
Show 8 quoted lines
>  		trace2_region_leave("merge", "write_auto_merge", opt->repo);
> +
> +		trace2_region_enter("merge", "write_merge_labels", opt->repo);
> +		opt->priv = result->priv;
> +		write_merge_labels(opt->repo, opt->priv->labels[0], opt->priv->labels[1],
> +				   opt->priv->labels[2]);
> +		opt->priv = NULL;
> +		trace2_region_leave("merge", "write_merge_labels", opt->repo);
Would it be better to do it this way instead?
	struct merge_options_internal *priv = result->priv;
	write_merge_labels(opt->repo,
			   priv->labels[0], priv->labels[1], priv->labels[2]);

Also, with the way merge labels are prepared and passed around, I wonder if we should just tighten its function signature and take

	write_merge_labels(struct repository *repo, const char *labels[3])
so that this calling site becomes[*]
	struct merge_options_internal *priv = result->priv;
	write_merge_labels(opt->repo, priv->labels);
[Footnote]
 * Here, I deviate from the usual naming convention to call an array
   of things in singular (so the second label would become
   label[2]), because from the point of view of the API consumer,
   "labels" as a unit is what they pass around, and call it in
   plural.
Previous: Junio C HamanoNext: Phillip Wood
Message 18 of 22 in “checkout -m: recreate conflict labels”
  1. 0/2 checkout -m: recreate conflict labelsPhillip Wood, Sep 30, 2026
  2. 1/2 remove_branch_state: convert boolean argument to flagsPhillip Wood, Sep 30, 2026
  3. 2/2 merge: remember conflict labelsPhillip Wood, Sep 30, 2026
  4. Junio C HamanoSep 30, 2026
  5. Johannes SixtSep 30, 2026
  6. Junio C HamanoSep 30, 2026
  7. Johannes SixtSep 30, 2026
  8. Phillip WoodOct 1, 2026
  9. Phillip WoodOct 1, 2026
  10. Junio C HamanoOct 1, 2026
  11. 1/2 remove_branch_state: convert boolean argument to flagsPhillip Wood, Oct 5, 2026
  12. 0/2 checkout -m: recreate conflict labelsPhillip Wood, Oct 5, 2026
  13. 2/2 merge: remember conflict labelsPhillip Wood, Oct 5, 2026
  14. Johannes SixtOct 5, 2026
  15. Phillip WoodOct 5, 2026
  16. Junio C HamanoOct 5, 2026
  17. Junio C HamanoOct 5, 2026
  18. Junio C HamanoOct 5, 2026
  19. Phillip WoodOct 6, 2026
  20. Phillip WoodOct 6, 2026
  21. Junio C HamanoOct 6, 2026
  22. Phillip WoodOct 7, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.