Para acompanhar a resposta de Charles Bailey, aqui está a minha configuração do git que usa o p4merge ( ferramenta gratuita de mesclagem de 3 vias entre plataformas); testado na instalação do msys Git (Windows):
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
ou, a partir de um shell do Windows cmd.exe, a segunda linha se torna:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
As mudanças (relativas a Charles Bailey):
- adicionado à configuração global do git, ou seja, válida para todos os projetos git, não apenas o atual
- o valor de configuração da ferramenta personalizada reside em "mergetool. [tool] .cmd", não em "mesclar. [tool] .cmd" (bobo, passei uma hora solucionando problemas por que o git continuava reclamando da ferramenta inexistente)
- adicionamos aspas duplas a todos os nomes de arquivos para que arquivos com espaços ainda possam ser encontrados pela ferramenta de mesclagem (testei isso no msys Git do Powershell)
- observe que, por padrão, o Perforce adiciona seu diretório de instalação ao PATH, portanto, não é necessário especificar o caminho completo para o p4merge no comando
Faça o download: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (fevereiro de 2014)
Conforme apontado por @Gregory Pakosz , o mais recente msys git agora "nativamente" suporta o p4merge (testado em 1.8.5.2.msysgit.0 ).
Você pode exibir a lista de ferramentas suportadas executando:
git mergetool --tool-help
Você deve ver o p4merge na lista disponível ou válida . Caso contrário, atualize seu git.
Se o p4merge foi listado como disponível , ele está no seu PATH e você só precisa definir o merge.tool :
git config --global merge.tool p4merge
Se ele foi listado como válido , é necessário definir mergetool.p4merge.path além de merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- O exemplo acima é um caminho de exemplo quando o p4merge foi instalado para o usuário atual, não em todo o sistema (não precisa de direitos de administrador ou elevação do UAC)
- Embora
~
deva expandir para o diretório inicial do usuário atual (portanto, em teoria, o caminho deve ser ~/AppData/Local/Perforce/p4merge.exe
), isso não funcionou para mim
- Melhor ainda seria tirar proveito de uma variável de ambiente (por exemplo
$LOCALAPPDATA/Perforce/p4merge.exe
), o git não parece estar expandindo variáveis de ambiente para caminhos (se você souber como fazer isso funcionar, informe-me ou atualize esta resposta)