git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Documentation bug (?) when describing `zdiff3` merge format

From
Johannes Sixt <j6t@kdbg.org>
Date
Aug 8, 2024, 06:49 UTC
Message-ID
<a8bc907a-de6f-4b99-a72c-41dd885fde55@kdbg.org>
In-Reply-To
<ab0fcc2e-936f-4d76-8059-fb2bc8a4f661@app.fastmail.com>
Am 08.08.24 um 03:22 schrieb punk.lion0906@fastmail.com:
Show 6 quoted lines
> The docs at
> https://git-scm.com/docs/git-merge#_how_conflicts_are_presented
> describe the following snippets in `diff3` and `zdiff3` style as
> equivalent. They do not seem equivalent to me, so either this is a
> mistake or the `zdiff3` style is counterintuitive needs a better
> explanation.

I don't think that the documentation wants to claim any equivalence. I can only see it says that "diff3 shows the conflict like this", and "zdiff3 shows the conflict like that".

Show 22 quoted lines
> zdiff3 style:
> 
> ```
> Here are lines that are either unchanged from the common
> ancestor, or cleanly resolved because only one side changed,
> or cleanly resolved because both sides changed the same way.
> <<<<<<< yours:sample.txt
> Conflict resolution is hard;
> let's go shopping.
> ||||||| base:sample.txt
> or cleanly resolved because both sides changed identically.
> Conflict resolution is hard.
> =======
> Git makes conflict resolution easy.
>>>>>>>> theirs:sample.txt
> And here is another line that is cleanly resolved or unmodified.
> ```
> 
> The problem is that, I believe, the "or cleanly resolved because both
> sides changed identically." sentence should not be part of the
> **base** in the latter example, since that whole line was moved
> outside the conflict.

This is exactly the problem that zdiff3 has: There is no way to indicate that some line in the common ancester was resolved identically and is now outside the conflict markers. Do not use zdiff3 if you cannot live with this deficiency. This is in fact not made explicit in the documentation.

-- Hannes
Previous: punk.lion0906@fastmail.comNext: Junio C Hamano
Message 2 of 5 in “Documentation bug (?) when describing `zdiff3` merge format”
  1. punk.lion0906@fastmail.comAug 8, 2024
  2. Johannes SixtAug 8, 2024
  3. Junio C HamanoAug 8, 2024
  4. Kyle LippincottAug 8, 2024
  5. punk.lion0906@fastmail.comAug 8, 2024

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.