Configurando o meld como ferramenta de diff padrão do git


Se você usa o git na linha de comando saiba que é possível utilizar um visualizador de diff diferente do padrão. Utilizarei como exemplo o meld que é uma feramenta gráfica para merge e diff de arquivos e diretórios. O exemplo pode ser adapatado para outras ferramentas.

 

Para começar instale o meld. Se estiver utilizando o ubuntu utilize o comando

sudo apt-get install meld

Agora vamos configurar o git para utilizar o meld como ferramenta padrão. Para isso utilize o comando:

git config --global diff.external meld

Pronto, agora basta utilizar o diff do git normalmente que o meld já será chamado.

git diff arquivo

O problema é que o git passa 7 parâmetros para o meld e ele só precisa de 2 (os arquivos que ele irá comparar).

Usage:
 meld Iniciar com a janela vazia
 meld  Inicia uma comparação de controle de versão
 meld   [] Inicia uma comparação de arquivo em 2 ou 3 vias
 meld   [] Inicia uma comparação de diretório em 2 ou 3 vias
 meld   Iniciar uma comparação entre arquivo e diretório/arquivo
meld: error: muitos argumentos (desejado 0-4, dados 7)

Para corrigir isso vamos fazer um script que pega somente os dois parâmetros necessários para o meld (que são o arquivo atual e a sua versão no HEAD).

Crie um script python com o conteúdo abaixo:

#!/usr/bin/python
import sys
import os
os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))

Salve o script como o nome diff.py por exemplo.

Atualize as permissões do script para permitir execução:

chmod +x diff.py

Adicione o caminho onde o script foi salvo no PATH. Para isso você pode editar o arquivo ~/.bashrc e adicionar a linha

export PATH=caminho_onde_foi_salvo_o_arquivo:$PATH

Por sim altere novamente a ferramenta de diff padrão do git com o comando:

git config --global diff.external diff.py

Fonte: https://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy

Related Posts Plugin for WordPress, Blogger...