# [BUG?] assertion failure when merging branches

3 messages from 2021-12-27 to 2021-12-28. Participants: Ralf Thielow, Elijah Newren.
Thread: https://gitlist.dev/t/57156

## Ralf Thielow, 2021-12-27 18:34

Subject: [BUG?] assertion failure when merging branches
Message-ID: <CAN0XMOK8iHZnbtYw7CPAQGJcmuVSDxQoFNFEwiaa41V89F1rzA@mail.gmail.com>
URL: https://gitlist.dev/e/CAN0XMOK8iHZnbtYw7CPAQGJcmuVSDxQoFNFEwiaa41V89F1rzA%40mail.gmail.com

```
Hi,

At $WORK I tried to merge two branches and ran into an assertion
failure. I exported the two branches down to the merge base as
an anonymous repo, so that it can be reproduced.

In the branch I tried to merge into, files have been moved
and/or reformatted.

My Git version is 2.34.1.

wget https://gist.github.com/ralfth/5b624abb0a99e3e705a0984c4b2d253e/raw/7f7ef5b10711550b90342c50b53ce25c19075c97/repo.txt
mkdir tmp
cd tmp
git init
cat ../repo.txt | git fast-import
git checkout ref0/ref1
git config merge.renormalize true
git merge ref2/ref0/ref3

git: merge-ort.c:3846: process_entry: Assertion `!ci->df_conflict &&
!ci->path_conflict' failed.
Aborted (core dumped)

Ciao,
Ralf

```

## Elijah Newren, 2021-12-27 22:15

Subject: Re: [BUG?] assertion failure when merging branches
Message-ID: <CABPp-BH=nqeqpW8Grn+6No4HvRaBaC9spwEsDcj1BWdsipJh=Q@mail.gmail.com>
URL: https://gitlist.dev/e/CABPp-BH%3DnqeqpW8Grn%2B6No4HvRaBaC9spwEsDcj1BWdsipJh%3DQ%40mail.gmail.com
In-Reply-To: <CAN0XMOK8iHZnbtYw7CPAQGJcmuVSDxQoFNFEwiaa41V89F1rzA@mail.gmail.com>

```
On Mon, Dec 27, 2021 at 10:35 AM Ralf Thielow <ralf.thielow@gmail.com> wrote:
>
> Hi,
>
> At $WORK I tried to merge two branches and ran into an assertion
> failure. I exported the two branches down to the merge base as
> an anonymous repo, so that it can be reproduced.
>
> In the branch I tried to merge into, files have been moved
> and/or reformatted.
>
> My Git version is 2.34.1.
>
> wget https://gist.github.com/ralfth/5b624abb0a99e3e705a0984c4b2d253e/raw/7f7ef5b10711550b90342c50b53ce25c19075c97/repo.txt
> mkdir tmp
> cd tmp
> git init
> cat ../repo.txt | git fast-import
> git checkout ref0/ref1
> git config merge.renormalize true
> git merge ref2/ref0/ref3
>
> git: merge-ort.c:3846: process_entry: Assertion `!ci->df_conflict &&
> !ci->path_conflict' failed.
> Aborted (core dumped)

Yikes, sorry about this renormalization bug in merge-ort.  For now,
you can recover via:

  $ rm .git/index.lock
  $ rm .git/MERGE_*

and then as a workaround you can either use the old merge backend for now:

  $ git config pull.twohead recursive

or continue using the new merge backend and just turn off
merge.renormalize.  After that, a subsequent `git merge
ref2/ref0/ref3` should work for you.


As for the bug, I introduced this in commit a492d5331c ("merge-ort:
ensure we consult df_conflict and path_conflicts", 2021-06-30), and
before that commit, this type of setup would be mis-merged (with a
rename/delete conflict getting ignored).  I'll submit a patch with a
smaller testcase soon.

```

## Elijah Newren, 2021-12-28 00:30

Subject: Re: [BUG?] assertion failure when merging branches
Message-ID: <CABPp-BGLMkqQs1ncT_EmPYjEo-GRV_qibx7EYSYL-wME3Exa5g@mail.gmail.com>
URL: https://gitlist.dev/e/CABPp-BGLMkqQs1ncT_EmPYjEo-GRV_qibx7EYSYL-wME3Exa5g%40mail.gmail.com
In-Reply-To: <CABPp-BH=nqeqpW8Grn+6No4HvRaBaC9spwEsDcj1BWdsipJh=Q@mail.gmail.com>

```
On Mon, Dec 27, 2021 at 2:15 PM Elijah Newren <newren@gmail.com> wrote:
>
> On Mon, Dec 27, 2021 at 10:35 AM Ralf Thielow <ralf.thielow@gmail.com> wrote:
> >
> > Hi,
> >
> > At $WORK I tried to merge two branches and ran into an assertion
> > failure. I exported the two branches down to the merge base as
> > an anonymous repo, so that it can be reproduced.
> >
> > In the branch I tried to merge into, files have been moved
> > and/or reformatted.
> >
> > My Git version is 2.34.1.
> >
> > wget https://gist.github.com/ralfth/5b624abb0a99e3e705a0984c4b2d253e/raw/7f7ef5b10711550b90342c50b53ce25c19075c97/repo.txt
> > mkdir tmp
> > cd tmp
> > git init
> > cat ../repo.txt | git fast-import
> > git checkout ref0/ref1
> > git config merge.renormalize true
> > git merge ref2/ref0/ref3
> >
> > git: merge-ort.c:3846: process_entry: Assertion `!ci->df_conflict &&
> > !ci->path_conflict' failed.
> > Aborted (core dumped)
>
> Yikes, sorry about this renormalization bug in merge-ort.
...
> I'll submit a patch with a smaller testcase soon.

For those wanting to follow along; fix submitted over here:
https://lore.kernel.org/git/pull.1174.git.git.1640650846612.gitgitgadget@gmail.com/

```
