On Mon, Dec 27, 2021 at 10:35 AM Ralf Thielow <ralf.thielow@xxxxxxxxx> 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.