Re: [PATCH 2/7] merge-ort: add ability to record conflict messages in a file
- From
Elijah Newren <newren@gmail.com>
- Date
- Sep 29, 2021, 16:31 UTC
- Message-ID
- <CABPp-BEidvD6Hi0rj4tnG5xioi1RXQK95NjGJkPYqjqmaU12nA@mail.gmail.com>
- In-Reply-To
- <xmqqr1d7e4ug.fsf@gitster.g>
On Wed, Sep 29, 2021 at 9:14 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> > Elijah Newren <newren@gmail.com> writes: > > > I also don't like how diff.orderFile provides a global ordering of the > > files listed, rather than providing some scheme for relative > > orderings. That'd either force me to precompute the diff to determine > > all the files that were different so I can list _all_ of them,... > > Don't we determine all the files that would be listed in the diff > anyway? The diffcore pipeline collects all the different filepairs, > matches them up for rename/copy detection, and finally do the output > formatting for each individual filepair.
merge-ort is missing one side of the diff. It only has the parents of the merge commit, and their merge base. So, merge-ort would now need to know about an additional commit (the original merge), and compute the diff between that and the merge-result it is creating, in advance of an external caller (log) calling diff to compute the result between those two trees.
Show 29 quoted lines
> > So, I'm not so sure about this solution; it feels like it introduces > > bigger holes than the ugly space character it is fixing. > > > >> - there can be other non-diff data between the individual segments. For > >> example, "patch" will skip over non-diff lines. And certainly in Git > >> we have our own custom headers. I'm wondering if we could attach > >> these annotations to the diff-pair somehow, and then show something > >> like: > >> > >> diff --git a/foo.c b/foo.c > >> index 1234abcd..5678cdef 100644 > >> conflict modify/delete foo.c > > > > A couple things here... > > > > First, I'm not so sure I like the abbreviation here. Just knowing > > "modify/delete" might be enough in some cases, but I'd rather have the > > full messages that would have been printed to the console... > > > > Second, what about when there are multiple ... > > > > Third, what about the cases where there is no diff, ... > > None of the above seems like a problem to me at least from the > presentation and consumption sides. There is no rule that extended > diff headers has to fit on a 72-char line, cannot use line folding > by inserting LF-SP in the middle of a logical line, and there > already is at least one case we give an extended diff header without > a single line of content change (namely, "chmod +x README").
Cool, that's good to hear. I'll look into it.