Git diff menos doloroso com Meld

Se você já utilizou alguma vez, mesmo que só por curiosidade, o comando git diff para visualizar diferenças entre arquivos, commits, diretórios, etc., deve ter visto uma tela pouco amigável como essa:

A tela é bem útil, o que está em vermelho foi removido e o que está em verde foi adicionado, simples e rápido.

Mas quando a mudança é grande, as linhas verdes e vermelhas se entrelaçam, linhas são repetidas para prover contexto e a comparação pode ficar um pouco confusa.

Em plataformas como o Mac, existem várias ferramentas gráficas que auxiliam o gerenciamento de projetos git. Até mesmo o Windows recebeu uma ferramenta do github (http://windows.github.com/).

No linux, a única opção gráfica é o gitk, que não é essa coca-cola toda. Principalmente quando é necessário comparar códigos com o git diff, pois a interface apresenta as mesmas informações do terminal. No entanto é possível fazer uma análise bem legal das diferenças utilizando a ferramenta Meld (http://meldmerge.org/).

Com o Meld podemos comparar visualmente e lado-a-lado as diferenças entre os dois códigos. O que é uma mão na roda para desenvolvedores, que assim como eu, são desprovidos de um mecenas que banque um MacBook =]

Para utilizar o Meld efetivamente com git basta instalar o aplicativo (via apt-get) e configurar algumas coisas.

sudo apt-get install meld

É necessário também criar um script para que os arquivos passados pelo git diff sejam enviados corretamente para o meld. Crie o arquivo em qualquer local, mas salve a localização para quando formos configurar o git. No exemplo, eu coloquei dentro da pasta .config/ na home do meu usuário.

touch ~/.config/git_meld_diff.sh
echo "#!/bin/bash" >> ~/.config/git_meld_diff.sh
echo "meld \"\$5\" \"\$2\"" >> ~/.config/git_meld_diff.sh
chmod +x ~/.config/git_meld_diff.sh

Pronto, com o script construído e com a autorização para ser executado, basta configurar o git para utilizá-lo como ferramente de diff.

git config --global diff.external ~/.config/git_meld_diff.sh

Se você quiser, basta fazer o download desses comandos em um único script automatizado disponível no Gist (https://gist.github.com/3004245) e executar o script como sudo, devido a necessidade de instalação.

Anúncios

Um comentário sobre “Git diff menos doloroso com Meld

  1. Dica de ouro, cara! Para os não tão acostumados com a “tela preta”, como eu, isso é ferramenta padrão!

    Att

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s