I'm trying to learn Fugitive with a live project, particularly resolving a merge conflict as I find doing this manually pretty tedious. I don't know if this is a valid question, because I cannot reproduce the effect outside of the repo I'm working with and I've otherwise never seen it before.
Anyway, Git is reporting a merge conflict. However, when I go to edit the file that contains the conflict, I scroll to the annotations that Git adds to mark the conflict (what are these called, by the way?) and they are identical. Something like this:
<<<<<<< HEAD
These are identical
=======
These are identical
>>>>>>> merge-branch
They are completely identical. There's no anomalous whitespace in one or the other, no weird Unicode characters that look the same, etc. Byte-for-byte identical. As such, Fugitive/vimdiff doesn't work: The only difference it detects are those in-band annotations and so doing a :diffget or :diffpull just removes the annotation. Because the annotations are suitably separated, they're treated separately, so one has to do each one individually and you eventually end up with this obviously incorrect result:
These are identical
These are identical
At first I thought that the annotations had been accidentally committed into one of the branches -- that's the only explanation I could come up with -- but no, they're nowhere to be seen. The files are not exactly the same in each branch, but they don't have conflicting differences.
It seems obvious that Git (2.28.0) is incorrectly marking a conflict and Vim/Fugitive are working fine. What is going wrong here?
What you describe is weird indeed, I think some explanation is missing in the elements that triggered the conflict.
I would suggest to inspect the "diff left" and "diff right" to look further in what could possibly create this conflict.
When a conflict is triggered on file
foo, git actually keeps 3 references to copies of that file :git show :1:foogit show :2:foogit show :3:fooInspect
git diff :1:foo :2:fooandgit diff :1:foo :3:footo see if you spot something that could trigger the conflict you see.