J'ai configuré git diff
pour envelopper vimdiff, en utilisant " Git Diff with Vimdiff " comme guide, et il fonctionne comme prévu sauf s'il y a beaucoup de fichiers avec des modifications.
Lorsqu'il y a plusieurs fichiers avec des modifications et que je lance git diff
, il ouvre le premier fichier et, après avoir quitté la première instance de vimdiff, le message suivant s'affiche:
external diff died, stopping at filename
C'est un comportement complètement différent de celui auquel je suis habitué. Auparavant, j’avais une configuration similaire avec SVN et, lorsqu’on différait de plusieurs fichiers, j’examinais le premier fichier, puis écrivais et quittais avec :wq
et le fichier suivant présentant des différences s’ouvrait.
Ce n'est pas le cas avec Git. J'ai essayé :n[ext]
, mais cela ne remplit pas la fenêtre de gauche avec le fichier d'origine afin qu'il puisse être comparé à la version modifiée.
git config --global diff.tool vimdiff
git config --global difftool.Prompt false
git config --global alias.d difftool
Taper git d
donne le comportement attendu. Taper :wq
dans vim permet de passer au fichier suivant dans le changeset.
Vous pouvez essayer git difftool
, il est conçu pour faire ce genre de choses.
Tout d’abord, vous devez configurer l’outil diff pour vimdiff
git config diff.tool vimdiff
Ensuite, lorsque vous voulez utiliser diff, utilisez simplement git difftool
au lieu de git diff
. Cela fonctionnera comme prévu.
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool.
git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge