Come impostare Meld come git mergetool


95

Ho impostato:

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

Su "git mergetool" scrive:

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

Ho provato anche:

  • / c / Progra ~ 2 / meld / bin /
  • "/ c / File di programma (x86) / meld / bin /"
  • "c: / File di programma (x86) / meld / bin /"

il risultato è lo stesso.

quando vado in C: / Programmi (x86) / meld / bin / ed eseguo

python meld

lo strumento viene eseguito.




Related: "Configurazione diff strumento con .gitconfig": stackoverflow.com/a/6412645/4561887 (per fusione, basta sostituire vimdiffcon meldin questa risposta)
Gabriel Staples

Si prega di commentare e votare il problema a monte in modo che il futuro utente non debba nemmeno preoccuparsi di questo.
Franklin Yu

Risposte:


71

Puoi utilizzare percorsi unix completi come:

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

Questo è ciò che viene descritto in " Come far funzionare meld con git su Windows "

Oppure puoi adottare l'approccio wrapper descritto in " Usa Meld with Git su 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

Con uno script meld.sh:

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

abergmeier menziona nei commenti :

Ho dovuto fare:

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

Si noti che meldc.exe è stato creato appositamente per essere richiamato su Windows tramite console. Pertanto meld.exe non funzionerà correttamente.


CenterOrbit menziona nei commenti per Mac OS per installare homebrew , quindi:

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

3
Per me dovevo fare:git config --global merge.tool meld git config --global mergetool.meld.path /c/Program files (x86)/Meld/meld/meldc.exe
abergmeier

@abergmeier Ok, ho incluso il tuo commento nella risposta per maggiore visibilità.
VonC

La soluzione di @ abergmeier funziona. Inoltre, su windows git bash, se fai tabkey, ti suggerirà il percorso quindi è facile farlo bene.
Aswin Kumar

3
Cordiali saluti, su Mac OSx: installa homebrew , quindi:$ brew install homebrew/x11/meld $ git config --global merge.tool meld $ git config --global diff.guitool meld
CenterOrbit

@CenterOrbit OK, ho incluso il tuo commento nella risposta per una maggiore visibilità.
VonC

24

Questo ha funzionato per me su Windows 8.1 e 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"quando si utilizza PowerShell
Michael Blake

11

combinare 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\"

Tieni presente che questa è una domanda abbandonata. Non mi occupo degli strumenti di unione da molto tempo, quindi anche se la tua risposta è la migliore, non posso provarlo e contrassegnarlo come risposta.
Paul

Ciao, l'ho provato e funziona benissimo. Nel mio caso, era il 'cmd' che mancava per chiamare correttamente meld
faidherbard

Meld non ha salvato correttamente i file uniti durante l'utilizzo di questo modello della riga di comando. Vedi stackoverflow.com/a/40777256/768795 per una risposta che funziona.
Thomas W

6

Penso che mergetool.meld.pathdovrebbe puntare direttamente all'eseguibile di combinazione. Quindi, il comando che desideri è:

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

5

Nessuna delle altre risposte qui ha funzionato per me, forse provando una combinazione di tutte. Sono stato in grado di adattare questa risposta accettata al lavoro con la fusione. Questo ora funziona per me con git 1.9.4, meld 3.14.0 e Windows 8.1.

Modifica ~ / .gitconfig in modo che assomigli a:

[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

Dopo averlo installato http://meldmerge.org/ ho dovuto dire a git dove si trovava:

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 sembra funzionare. Sia fusione che differenza con "git difftool" o "git mergetool"

Se qualcuno sta affrontando problemi come Meld si arresta in modo anomalo dopo l'avvio (indicazione del problema con Python), è necessario configurare Meld / lib nella variabile di ambiente di sistema come segue C:\Program Files (x86)\Meld\lib


0

Per Windows aggiungi il percorso per la fusione è come di seguito:

 git config --global mergetool.meld.path C:\\Meld_run\\Meld.exe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.