Subject: Re: [PATCH 2/3] diff: fix filtering of additional headers under --remerge-diff

From: Junio C Hamano <[email-masked]>
Date: Wed, 31 Aug 2022 15:26:01 -0700

"Elijah Newren via GitGitGadget" <[email-masked]> writes:

> From: Elijah Newren <[email-masked]>
>
> Commit 95433eeed9 ("diff: add ability to insert additional headers for
> paths", 2022-02-02) introduced the possibility of additional headers.
> Because there could be conflicts with no content differences (e.g. a
> modify/delete conflict resolved in favor of taking the modified file
> as-is), that commit also modified the diff_queue_is_empty() and
> diff_flush_patch() logic to ensure these headers were included even if
> there was no associated content diff.

In the longer term, I think we may have to redo the way additional
headers are inserted to the diff_queue.  All the diff code I am
familiar with (read: written before this hack was introduced) trusts
that diff_queue.nr is the number of paths that are returned by the
diff frontend, and unless there is diffcore_break involved, there
will be at most one diff_filepair that is about a path.

Why do these need to be separate entries in the queue, not a new
attribute added to an existing filepair?  Are we inserting pieces of
information that are not about any paths that are involved in the
diff?