porque o meu .gitconfig não funciona? (para diff externo)

2

Adicionei isso em ~/.gitconfig :

[diff]
    external = mvimdiff

[difftool]
    prompt = false

e fez um 755 /bin/mvimdiff que:

#!/bin/sh

mvim -d "$2" "$5"

para invocar o MacVim como minha ferramenta git diff. Mas quando executo o comando git diff em uma pasta git, ele ainda gera o resultado do% normaldiff para o shell. Nenhum MacVim em tudo. Tenho certeza de que nenhum .git/config sobrescreve o .gitconfig e tentei reiniciar meu computador para atualizar. Por que a configuração não funciona?

Obrigado.

    
por Skyler 16.11.2012 / 15:31

1 resposta

4

Pode ser melhor usar git difftool para invocar uma ferramenta de comparação "interativa". Por exemplo:

Adapte a ferramenta gvimdiff integrada a mvim :

git config --global diff.tool gvimdiff
git config --global difftool.gvimdiff.path mvim

Ou configure mvimdiff do zero:

git config --global diff.tool mvimdiff
git config --global difftool.mvimdiff.cmd 'mvim -f -d "$LOCAL" "$REMOTE"'

Em seguida, execute git difftool para visualizar cada arquivo diferente em MacVim .

Se você realmente quer que o git diff use MacVim , você pode configurá-lo assim (sem nenhum arquivo de script externo):

git config diff.external 'd() { mvim -f -d "$2" "$5"; }; d'

De qualquer forma, você precisa garantir que o mvim apropriado esteja em seu PATH. Além disso, você precisará usar a opção -f ("não bifurcar" / "executar em primeiro plano") porque senão git diff provavelmente excluirá os arquivos temporários antes que MacVim tenha tido a chance de leia-os (pelo menos um arquivo de cada invocação será um arquivo temporário).

    
por 17.11.2012 / 09:44