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
1 | sudo apt-get install meld |
Agora vamos configurar o git para utilizar o meld como ferramenta padrão. Para isso utilize o comando:
1 | git config --global diff.external meld |
Pronto, agora basta utilizar o diff do git normalmente que o meld já será chamado.
1 | 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).
1 2 3 4 5 6 7 8 | Usage: meld Iniciar com a janela vazia meld <arquivo|dir> Inicia uma comparação de controle de versão meld <arquivo> <arquivo> [<arquivo>] Inicia uma comparação de arquivo em 2 ou 3 vias meld <dir> <dir> [<dir>] Inicia uma comparação de diretório em 2 ou 3 vias meld <arquivo> <dir> 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:
1 2 3 4 5 6 | #!/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:
1 | 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
1 | export PATH=caminho_onde_foi_salvo_o_arquivo:$PATH |
Por sim altere novamente a ferramenta de diff padrão do git com o comando:
1 | git config --global diff.external diff.py |
Fonte: https://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
