web-dev-qa-db-fra.com

Voir tous les `git diffs` avec vimdiff

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.

197
chuckg
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.

316
chuckg

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.

101
czchen
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
20
Nanhe Kumar