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.