J'ai ce qui suit dans mon .gitconfig
fichier:
[user]
name = myname
email = [email protected]
[core]
autocrlf = true
excludesfile = C:\\Users\\myname\\Documents\\gitignore_global.txt
[diff]
tool = meld
[difftool "meld"]
cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
Prompt = false
[merge]
tool = meld
[mergetool "meld"]
cmd = "C:/Program Files (x86)/Meld/meld/meld.exe"
[difftool "sourcetree"]
cmd = "C:/Program Files (x86)/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE"
[mergetool "sourcetree"]
cmd = 'C:/Program Files (x86)/Meld/meld/meld.exe' \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
trustExitCode = true
Et dans Sourcetree, j'ai les paramètres suivants:
Cependant, lorsque j'ai cliqué avec le bouton droit sur un fichier sur Sourcetree pour faire un diff externe, j'ai pu ouvrir Meld, mais le contenu du fichier n'était pas du tout affiché.
Qu'est-ce que j'ai fait de mal dans les paramètres?
Je pense que les réponses existantes ont légèrement manqué le point. Voici ma propre nourriture pour chien:
Détail des arguments:
Diff: $LOCAL $REMOTE
Merge: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
Pour External Diff
, vous devez supprimer $ BASE de votre liste d'arguments.
Pour une fusion à 3, vous devez cliquer sur External Merge Tool
option à la place, qui ne sera disponible qu'en cas de conflits non résolus.
Si vous n'êtes pas limité à Sourcetree + Meld , je compte la Git Extensions + KDiff suite pourrait également être une bonne alternative open source.
Le paramètre réel à utiliser ici afin d'avoir une véritable fusion à 3 voies, avec des onglets en lecture seule LEURS et MINE est le suivant:
$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
Noter la =
après --output
.
J'ai finalement compris cette commande en fouillant dans les commentaires sur la deuxième réponse à cette question Git fusionnant avec Meld .
Si vous ne souhaitez pas modifier la variable d'environnement PATH, vous pouvez utiliser les noms abrégés compatibles DOS:
C:\Progra~1 = C:\Program Files
C:\Progra~2 = C:\Program Files (x86)
Cela évite les espaces gênants sur le chemin et joue Nice avec Sourcetree. C'est hackish, mais ça marche. Vous pouvez ensuite utiliser quelque chose comme ça comme chemin vers Meld:
C:\Progra~1\Meld\meld.exe
Il n'est pas garanti que Progra ~ 1 mappe vers le répertoire 64 bits, vous devrez donc peut-être tester lequel mappe sur lequel.
Essayez d'ajouter l'emplacement de meld.exe à votre CHEMIN (par exemple C:\Program Files (x86)\Meld), puis dans la commande Diff , entrez simplement meld au lieu du chemin complet. Voir l'essentiel Comment utiliser la fusion avec Sourcetree sous Windows.