No Linux, minha ferramenta de mesclagem favorita é o Meld, e não tive problemas em usá-la ou configurá-la para funcionar com o Git. No entanto, no Windows, a história é diferente.
Primeiro, instalei o Meld de um pacote que encontrei aqui: https://code.google.com/p/meld-installer/
Então, eu configurei meu .gitconfig assim para suportar Meld como o mergetool padrão
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Então, quando eu tenho um conflito, git difftool e Meld de fato abre. No entanto, os caminhos para os arquivos que o Git grava para passar para a ferramenta diff estão incorretos. Por exemplo, embora o Git gere os arquivos BASE, LOCAL e REMOTE no diretório do repositório (o local de onde chamei git mergetool), o Meld tenta abrir cada um desses arquivos no diretório do executável.
Em vez de abrir C: \ repo \ roses.txt.LOCAL.2760.txt, o Meld tenta abrir C: \ Arquivos de programas (x86) \ Meld \ meld \ roses.txt.LOCAL.2760.txt.
Alguém já se deparou com isso antes ou sabe como configurar o Git / Meld para funcionar corretamente no Windows?
Respostas:
Por que você não usa o git bash para Windows?
Após a instalação, basta:
Isso é tudo!
fonte
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
eDLL load failed
.Schuess, tome cuidado com caracteres de espaço nos diretórios!
fonte
cmd
sempath
e backticks em vez de aspas simples, aspas simples em vez de citações de barra-double usado.Program_Files_x86 -> 'Program Files (x86)/'
e usei[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
Eu tive exatamente o mesmo problema e descobri que precisava usar a força bruta para fazê-lo funcionar. Aqui está o que eu coloquei em meu arquivo .gitconfig. (Observe que meu executável meld está em um local diferente)
fonte
meld
arquivo nobin
diretório (na verdade, renomeei o arquivomeld.py
) e funcionou sem problemas.Janelas:
Você pode usar esses dois comandos ( como diz Arugin ) - usando o caminho adequado para Meld.exe:
OU você pode simplesmente editar seu
C:\Users\YOUR_USER_NAME\.gitconfig
arquivo diretamente e adicionar o seguinte ao final dele:Agora chame o
git difftool
Git Bash para Windows e o Meld abrirá como seu visualizador de difftool padrão.Linux:
ATUALIZAÇÃO 20 de setembro de 2019:
- Posso também colocar a versão Linux aqui também para minha própria referência em um só lugar:
Para Linux também é super fácil:
Em seguida, adicione ao final do arquivo .gitconfig:
É isso aí!
git difftool
agora funciona no Linux Ubuntu!Relacionado:
fonte
Eu encontrei uma solução em um relatório de bug no instalador do meld, nesta página:
https://code.google.com/p/meld-installer/issues/detail?id=11
Pelo que entendi, o problema é que o programa meld.exe (que executa o meld por meio do interpretador Python) define desnecessariamente o diretório de trabalho do comando como o do meld.exe. Isso faz com que os caminhos relativos sejam interpretados incorretamente quando passados como argumentos de linha de comando.
A solução é substituir o meld.exe fornecido por um gerado pela compilação do arquivo meld.ahk, usando AHK2EXe (script AutoHotKey -> exe). Basta baixar o script mais abaixo na página, já que algumas versões foram postadas lá.
fonte
Eu também enfrentei um problema semelhante. O sistema operacional usado é o Windows 10 e as seguintes alterações funcionaram para mim. Parece mais um problema de caminho
fonte
Por alguma razão, no Windows 10 a variável de ambiente PATH não pôde ser definida corretamente durante a instalação, então uma estranha exceção é levantada dizendo que não foi possível encontrar alguns .dll que estão em "C: \ Arquivos de Programas (x86) / Diretório Meld / bin ".
Uma solução alternativa para mim foi executar em git bash:
Ou adicione ao Windows PATH
fonte
Nenhuma das respostas funcionou para mim. Acabei com isso no arquivo .gitconfig:
Depois de
git merge mybranch
encerrar os conflitos, você simplesmente digitagit mergetool
e a fusão é aberta. Depois de salvar, você deve fazer um commit no git e os conflitos serão resolvidos.Por algum motivo, isso só funcionou com Meld 3.18.x, Meld 3.20.x me dá um erro.
fonte
Depois de tentar todas as opções acima, configurar o Meld para ser executado como administrador funcionou para mim.
Run this program as an administrator
caixa de seleçãoOs erros que recebi arquivos temporários referenciados como
c:\windows\temp\meld-*
, que não estavam sendo criados. Elevar as permissões do Meld parece funcionar, pois agora funciona com ambosgit difftool
e é executado manualmente no Meld.fonte