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

Re: git rerere and diff3

From
NDNicolas Dechesne <nicolas.dechesne@linaro.org>
Date
Jun 26, 2018, 19:37 UTC
Message-ID
<CAP71Wjxxx=mNFUAOn331vjqqf77mkBgU_hE+SKoTuszx6MMjvg@mail.gmail.com>
In-Reply-To
<xmqq1sctl676.fsf@gitster-ct.c.googlers.com>
On Tue, Jun 26, 2018 at 9:05 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 37 quoted lines
>
> Nicolas Dechesne <nicolas.dechesne@linaro.org> writes:
>
> > 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.
well, you're rigth.. that's what's happening...

=== with conflictstyle=merge diff --cc arch/arm64/configs/defconfig index 3cfa8ca26738,d53a1b00ad82..000000000000

--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@@ -356,7 -334,7 +357,11 @@@ CONFIG_GPIO_PCA953X=
  CONFIG_GPIO_PCA953X_IRQ=y
  CONFIG_GPIO_MAX77620=y
  CONFIG_POWER_AVS=y
++<<<<<<< HEAD
 +CONFIG_ROCKCHIP_IODOMAIN=y
++=======
+ CONFIG_QCOM_CPR=y
++>>>>>>> tracking-qcomlt-8016-dvfs
  CONFIG_POWER_RESET_MSM=y
  CONFIG_POWER_RESET_XGENE=y
  CONFIG_POWER_RESET_SYSCON=y

=== with conflictstyle=diff3
diff --cc arch/arm64/configs/defconfig
index 3cfa8ca26738,d53a1b00ad82..000000000000
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@@ -355,8 -333,8 +356,14 @@@ CONFIG_GPIO_XGENE_SB=
  CONFIG_GPIO_PCA953X=y
  CONFIG_GPIO_PCA953X_IRQ=y
  CONFIG_GPIO_MAX77620=y
++<<<<<<< HEAD
 +CONFIG_POWER_AVS=y
 +CONFIG_ROCKCHIP_IODOMAIN=y
++||||||| merged common ancestors
++=======
+ CONFIG_POWER_AVS=y
+ CONFIG_QCOM_CPR=y
++>>>>>>> tracking-qcomlt-8016-dvfs
  CONFIG_POWER_RESET_MSM=y
  CONFIG_POWER_RESET_XGENE=y
  CONFIG_POWER_RESET_SYSCON=y

that explains it.. it was simpler than what I thought..

thanks!
Previous: Junio C Hamano
Message 3 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.