Lors de la résolution d'un conflit de fusion à l'aide de Git
et Vim
comme mergetool, j'obtiens (soudainement) un point de vue totalement différent de celui auquel je m'attendais et auquel je suis habitué. Dans le passé, j'ai suivi cet article de blog où le résultat est une vue avec quatre fenêtres : LOCAL | BASE | REMOTE
puis le fichier ci-dessous. Maintenant, j'obtiens également quatre Windows, mais LOCAL
et ensuite LOCAL | LOCAL | file
.
Je n'ai pas été en mesure de déterminer si le problème se situait au niveau des Git
o Vim
. J'ai supprimé mon .gitconfig
ainsi que la .vimrc
mais ni l'un ni l'autre n'ont aidé. Ce qui a finalement aidé, c'est de déguiser le HOME
pour les Git
via cette commande :
$ git merge octodog
$ HOME= git mergetool
Je suppose que ce comportement est lié à une nouvelle version logicielle de l'un ou des deux outils, car je n'ai jamais connu cela par le passé. Le problème est également indépendant du répertoire et de l'hôte, il se produit également sur une autre machine.
Les versions :
$ git --version
git version 2.37.1
$ vim --version
VIM - Vi IMproved 9.0
Exemple de travail minimal (compressé à partir de l'article du blog) :
$ cd $(mktemp -d)
$ git init
$ # ––– config mergetool
$ git config merge.tool vimdiff
$ git config merge.conflictstyle diff3
$ git config mergetool.prompt false
$ # ––– create merge conflict
$ echo -e 'cat\ndog\noctopus\noctocat' > animals.txt
$ git add animals.txt
$ git commit -am 'Initial commit'
$ git checkout -b octodog
$ sed -i 's/octopus/octodog/' animals.txt
$ git commit -am "Replace octopus with an octodog"
$ git checkout master
$ sed -i 's/octopus/octoman/' animals.txt
$ git commit -am "Replace octopus with an octoman"
$ # ––– trigger behavior
$ git merge octodog
$ git mergetool
Que puis-je faire pour retrouver la vue correcte des différences ?