Comment utiliser Meld comme outil de fusion avec SourceTree sous Windows?
j'ai dans mon fichier .gitconfig
ce qui suit:
[user]
name = myname
email = myname@gmail.com
[core]
autocrlf = true
excludesfile = C:UsersmynameDocumentsgitignore_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é sur le bouton de droite d'un fichier sur sourcetree pour faire une diff externe, j'ai pu ouvrir meld mais le contenu du fichier n'était pas affiché du tout.
Qu'ai-je fait de mal dans les paramètres ?
5 réponses
je pense que les réponses existantes ont quelque peu manqué le but. Voici ma propre nourriture pour chien:
Arguments Détail:
Diff: $LOCAL $REMOTE
Merge: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
pour External Diff
, vous devez supprimer $BASE de votre liste d'arguments
pour la fusion à trois, vous devez cliquer sur l'option External Merge Tool
à la place, qui n'est disponible que s'il y a des conflits non résolus.
mise à jour: si vous n'êtes pas limité à SourceTree + Meld , je pense que le Extensions Git + KDiff3 suite pourrait être une bonne alternative de source ouverte aussi.
le réglage réel à utiliser ici afin d'avoir une réelle Fusion à 3 voies, avec lire seulement leurs onglets et MINE est ceci:
$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
Note la =
après --output
.
j'ai finalement obtenu cette commande droite en creusant dans les commentaires sur la deuxième réponse à cette question Git fusion en utilisant la soudure .
pour OS X il ressemble à ceci:
-
Commande Diff:
meld
.- Arguments:
@LOCAL @REMOTE
- Arguments:
-
Commande De Fusion:
meld
.- Arguments:
$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED
- Arguments:
P. S.
pour l'utiliser en ligne de commande, vous devez l'installer via brassage :
brew install meld
si vous ne voulez pas modifier la variable D'environnement PATH, vous pouvez utiliser les noms courts compatibles DOS:
C:\Progra~1 = C:\Program Files
C:\Progra~2 = C:\Program Files (x86)
qui évite les espaces de trouble dans le chemin et joue bien avec SourceTree. C'est hackish mais ça marche. Vous pouvez alors utiliser quelque chose comme ceci comme le chemin de fusion:
C:\Progra~1\Meld\meld.exe
il ne peut pas être garanti que Progra~1 correspond au dir 64 bits, donc vous pourriez avoir besoin d'expérimenter avec lequel une correspond à laquelle.
Essayez d'ajouter l'emplacement de fondre.exe to your PATH (e.g. C:\Program fichiers (x86)\Meld), puis dans la commande Diff il suffit d'entrer meld au lieu du chemin complet. Voir ici: https://gist.github.com/chinhodado/6fc37def3e12ea09f785