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

Re: git rerere and diff3

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 26, 2018, 19:05 UTC
Message-ID
<xmqq1sctl676.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CAP71WjzHffLRCDbjvF7qpexjXDMFcJkaPpEn=AtbSMCJd6QkBQ@mail.gmail.com>
Nicolas Dechesne <nicolas.dechesne@linaro.org> writes:
Show 10 quoted lines
> i have noticed that merge.conflictstyle has an impact on the rerere
> resolution. looking briefly at the source code, it seems that git
> tries to discard the common ancestor diff3 bits, but what I am seeing
> is that if i do the following then it fails:
>
> 1. from a clean rr-cache state, with merge.conflictsytle=diff3, git
> merge <branch with conflict>, resolve the conflicts, then commit
> 2. undo the previous merge, remove merge.conflictstyle=diff3 (disable
> diff3) and merge the *same* branch, then rerere won't fix the
> conflicts

It is possible that the conflict left when making the same merge are actually different when using these two conflict styles. IOW, if the merge produces

	<<<
	side A
	|||
	common
	===
	side B
	>>>
when diff3 style is chosen, but if the same merge results in
	<<<
	side A'
	===
	side B'
	>>>

where side A' is not identical to side A (or B' and B are not identical), then we will fail to find the previously recorded resolution.

Previous: Nicolas DechesneNext: Nicolas Dechesne
Message 2 of 3 in “git rerere and diff3”
  1. Nicolas DechesneJun 26, 2018
  2. Junio C HamanoJun 26, 2018
  3. Nicolas DechesneJun 26, 2018

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.