Domanda

I ha installato git diff per avvolgere in vimdiff, con " Git diff con Vimdiff " come guida, e sta funzionando come previsto a meno che non ci sono molti file con i cambiamenti.

Quando ci sono più file con modifiche e corro git diff, si apre il primo file e, dopo aver lasciato la prima istanza di vimdiff, sto presentato con il seguente messaggio:

external diff died, stopping at filename

Questo è un comportamento completamente diverso da quello a cui sono abituato. Ho avuto una configurazione simile in passato con SVN e, quando diffing contro più file, vorrei rivedere il primo file, quindi scrivere e smettere di usare :wq e il prossimo file con differenze aprirebbe.

Questo non è il caso di Git. Ho provato :n[ext], ma così facendo non riempie la finestra di sinistra con il file originale in modo che possa essere diffed contro la versione modificata.

È stato utile?

Soluzione

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

Typing git d produce il comportamento previsto, battitura :wq in cicli vim al file successivo nella changeset.

Altri suggerimenti

Si può provare git difftool, è stato progettato per fare queste cose.

In primo luogo, è necessario config diff strumento per vimdiff

git config diff.tool vimdiff

Poi, quando si desidera diff, basta usare git difftool invece di git diff. Funzionerà come ci si aspetta.

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top