Como definir Meld como git mergetool


95

Eu configurei:

git config --global merge.tool meld
git config --global mergetool.meld.path c:/Progra~2/meld/bin/

Em "git mergetool" ele escreve:

Hit return to start merge resolution tool (meld):
The merge tool meld is not available as 'c:/Progra~2/meld/bin/'

Eu tentei também:

  • / c / Progra ~ 2 / meld / bin /
  • "/ c / Arquivos de programa (x86) / meld / bin /"
  • "c: / Arquivos de programa (x86) / meld / bin /"

resultado é o mesmo.

quando vou para C: / Arquivos de programas (x86) / meld / bin / e executo

python meld

a ferramenta funciona.




Relacionado: "Configurando a ferramenta diff com .gitconfig": stackoverflow.com/a/6412645/4561887 (para meld, basta substituir vimdiffpor meldnesta resposta)
Gabriel Staples

Por favor, comente e vote no problema do upstream para que o futuro usuário não precise nem se preocupar com isso.
Franklin Yu

Respostas:


71

Você pode usar caminhos unix completos como:

PATH=$PATH:/c/python26
git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/meld/bin/meld

Isso é o que está descrito em " Como fazer o meld funcionar com o git no Windows "

Ou você pode adotar a abordagem de wrapper descrita em " Use Meld com Git no Windows "

# set up Meld as the default gui diff tool
$ git config --global  diff.guitool meld

# set the path to Meld
$ git config --global mergetool.meld.path C:/meld-1.6.0/Bin/meld.sh

Com um script meld.sh:

#!/bin/env bash
C:/Python27/pythonw.exe C:/meld-1.6.0/bin/meld $@

Abergmeier menciona nos comentários :

Eu tive que fazer:

git config --global merge.tool meld
git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe

Observe que o meldc.exe foi criado especialmente para ser chamado no Windows por meio do console. Portanto, o meld.exe não funcionará corretamente.


O CenterOrbit menciona nos comentários para o Mac OS instalar o homebrew e, em seguida:

brew cask install meld
git config --global merge.tool meld
git config --global  diff.guitool meld

3
Para mim, eu tinha que fazer:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier

@abergmeier Ok, incluí seu comentário na resposta para ter mais visibilidade.
VonC de

A solução da @abergmeier funciona. Além disso, no windows git bash, se você fizer tabkey, ele irá sugerir o caminho, então é fácil acertar.
Aswin Kumar

3
Para sua informação, no Mac OSx: instale o homebrew e , em seguida:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit

@CenterOrbit OK, incluí seu comentário na resposta para obter mais visibilidade.
VonC

24

Isso funcionou para mim no Windows 8.1 e no Windows 10.

git config --global mergetool.meld.path "/c/Program Files (x86)/meld/meld.exe"

6
git config --global mergetool.meld.path "c:\Program Files (x86)\meld\meld.exe"ao usar o PowerShell
Michael Blake

11

fusão 3.14.0

[merge]
    tool = meld
[mergetool "meld"]
    path = C:/Program Files (x86)/Meld/Meld.exe
    cmd = \"C:/Program Files (x86)/Meld/Meld.exe\" --diff \"$BASE\" \"$LOCAL\" \"$REMOTE\" --output \"$MERGED\"

Esteja ciente de que esta é uma questão abandonada. Não lidei com ferramentas de mesclagem há muito tempo, então mesmo que sua resposta seja a melhor, não posso provar e marcar como uma resposta.
Paul de

Olá, experimentei e funciona muito bem. No meu caso, era o 'cmd' que faltava para chamar adequadamente meld
faidherbard

Meld não salvou arquivos mesclados corretamente para mim ao usar este modelo de linha de comando. Consulte stackoverflow.com/a/40777256/768795 para obter uma resposta que funcione.
Thomas W

6

Acho que isso mergetool.meld.pathdeve apontar diretamente para o executável do meld. Assim, o comando que você deseja é:

git config --global mergetool.meld.path c:/Progra~2/meld/bin/meld

5

Nenhuma das outras respostas aqui funcionou para mim, possivelmente por tentar uma combinação de todas elas. Consegui adaptar essa resposta aceita para trabalhar com o meld. Isso agora está funcionando para mim com git 1.9.4, meld 3.14.0 e windows 8.1.

Edite ~ / .gitconfig para se parecer com:

[diff]
    tool = meld
    guitool = meld
[mergetool "meld"]
    path = c:/Program Files (x86)/Meld/Meld.exe
[difftool "meld"]
    path = c:/Program Files (x86)/Meld/Meld.exe

2

Depois de instalá-lo http://meldmerge.org/ eu tive que dizer ao git onde ele estava:

git config --global merge.tool meld
git config --global diff.tool meld
git config --global mergetool.meld.path “C:\Program Files (x86)\Meld\meld.exe”

E isso parece funcionar. Mesclar e diferenciar com “git difftool” ou “git mergetool”

Se alguém enfrentar problemas como o Meld travar após iniciar (indicação de problema com o python), você precisará configurar o Meld / lib para a variável de ambiente do sistema conforme abaixo C:\Program Files (x86)\Meld\lib


0

Para windows add, o caminho para a fusão é como abaixo:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.