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

Re: [PATCH 04/10] checkout --conflict=diff3: add a label for ancestor

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Mar 15, 2010, 08:32 UTC
Message-ID
<20100315083238.GA10068@progeny.tock>
In-Reply-To
<7vvdcy0zf3.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
Show 12 quoted lines
>> git rerere will not have trouble parsing this output, since instead of
>> looking for a newline, it looks for whitespace after the |||||||
>> marker.
>
> Missing:
> 
>     "... and adding the extra label will not affect the computed the conflict
>     identifier, so existing rerere database will not be invalidated with this
>     change either".
> 
> I didn't verified the above claim, but if it does not hold true, then we
> need to think the transition strategy.  I don't expect a problem, though.

It holds. handle_path() in rerere.c actually recreates the conflict hunk after parsing it:

	rerere_io_putconflict('<', marker_size, io);
	rerere_io_putmem(one.buf, one.len, io);
	rerere_io_putconflict('=', marker_size, io);
	rerere_io_putmem(two.buf, two.len, io);
	rerere_io_putconflict('>', marker_size, io);

This is a piece of defensive programing by Dscho that has lasted since rerere was first made builtin. It shelters rerere from changes in the format of the conflict markers.

Show 5 quoted lines
>> Reported-by: Stefan Monnier <monnier@iro.umontreal.ca>
>> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
>
> This "Reported" feels very odd for a feature enhancement ("Requested"
> would be more appropriate) not a bugfix.
Makes sense, thanks.
Show 8 quoted lines
>> ---
>> Since “original” a good name for the common ancestor?  I also
>> considered “base” and “ancestor”; the latter is too jargon-y for my
>> taste, but “base” seems all right.
>
> Yeah, base sounds good.  Even though at the lowest level, a merge is a
> merge between two equals, people tend to think of the contents of their
> own side "original" (vs the merge outcome "result").
Sound good.  “base” it is, then.

Thanks, Jonathan

Previous: Junio C HamanoNext: Jonathan Nieder
Message 15 of 23 in “Re: git-core: conflictstyle=diff3 doesn't actually use diff3 compatible format”
  1. Jonathan NiederMar 5, 2010
  2. Junio C HamanoMar 5, 2010
  3. Bert WesargMar 6, 2010
  4. Junio C HamanoMar 6, 2010
  5. Jonathan NiederMar 8, 2010
  6. 0/10 Add label for common ancestor to conflictstyle=diff3Jonathan Nieder, Mar 15, 2010
  7. 01/10 xdl_merge(): add optional ancestor label to diff3-style outputJonathan Nieder, Mar 15, 2010
  8. Junio C HamanoMar 15, 2010
  9. Jonathan NiederMar 15, 2010
  10. Junio C HamanoMar 15, 2010
  11. 02/10 merge-file --diff3: add a label for ancestorJonathan Nieder, Mar 15, 2010
  12. 03/10 ll_merge(): add ancestor label parameter for diff3-style outputJonathan Nieder, Mar 15, 2010
  13. 04/10 checkout --conflict=diff3: add a label for ancestorJonathan Nieder, Mar 15, 2010
  14. Junio C HamanoMar 15, 2010
  15. Jonathan NiederMar 15, 2010
  16. 05/10 merge_file(): add comment explaining behavior wrt conflict styleJonathan Nieder, Mar 15, 2010
  17. 06/10 merge_trees(): add ancestor label parameter for diff3-style outputJonathan Nieder, Mar 15, 2010
  18. 07/10 tests: document format of conflicts from checkout -mJonathan Nieder, Mar 15, 2010
  19. 08/10 checkout -m --conflict=diff3: add a label for ancestorJonathan Nieder, Mar 15, 2010
  20. 09/10 cherry-pick: add a label for ancestorJonathan Nieder, Mar 15, 2010
  21. 10/10 merge-recursive: add a label for ancestorJonathan Nieder, Mar 15, 2010
  22. Junio C HamanoMar 15, 2010
  23. Stefan MonnierMar 15, 2010

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.