Quelqu'un a-t-il déjà fait fonctionner Meld avec Git sous Windows? J'essaie de le faire fonctionner et je n'ai aucun succès.
Meld est installé et lorsque je l’appelle à partir de la ligne de commande avec deux fichiers en tant que paramètres, il les diffère bien afin que Meld soit correctement installé. Cependant, je ne peux pas le faire fonctionner avec Git (Git Diff). J'utilise la version git version 1.8.1.msysgit.1
de Git.
J'ai essayé plusieurs choses: J'ai créé un script Shell, meld.sh
:
#!/bin/bash
meld.exe "$2" "$5"
echo $2
echo $5
et utilisé depuis Git:
[diff]
tool = meld
[difftool "meld"]
cmd = \"D:\\meld.sh\"
J'ai essayé de l'ajouter comme un difftool comme ceci:
[diff]
tool = meld
[difftool "meld"]
cmd = \"C:\\Program Files (x86)\\Meld\\meld\\meld.exe\"
ou comme ceci:
[diff]
tool = meld
[difftool "meld"]
cmd = '\"/c/Program Files (x86)/Meld/meld/meld.exe\" $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED'
Mais cela ne semble vraiment pas fonctionner. J'ai également essayé de faire écho aux deuxième ($ 2) et cinquième ($ 5) paramètres de mon script Shell et à aucune sortie. J'ai aussi essayé d'utiliser un script batch de plusieurs manières:
meld.exe %2 %5
ou
meld.exe %~2 %~5
Mais ça ne marche vraiment pas ... Comment puis-je passer les deux versions du fichier que Git
utilise lorsqu’il diffère de Meld? C'est assez énervant ...
Vous trouverez généralement un exemple sous Windows similaire à this Gist , avec meld.exe dans votre PATH
):
git config --global merge.tool meld
git config --global mergetool.meld.cmd 'meld.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
git config --global diff.tool meld
git config --global difftool.meld.cmd 'meld.exe \"$LOCAL\" \"$REMOTE\"'
Vous pouvez trouver des paramètres plus robustes dans " Git mergetool avec Meld sous Windows ", mais l’idée reste la même.
Le PO rapporte dans les commentaires:
Pour la
difftool
, vos commandes écrivent les configurations suivantes dans.gitconfig
:
[diff]
tool = meld
[difftool "meld"]
cmd = meld.exe \\\"$LOCAL\\\" \\\"$REMOTE\\\"
Je les ai changés pour:
[diff]
tool = meld
[difftool "meld"]
cmd = meld.exe $LOCAL $REMOTE
et tout a bien fonctionné.
Ou encore mieux, si vous êtes sur un système verrouillé dans lequel tromper le chemin n'est pas autorisé ou si vous ne voulez pas polluer l'espace du chemin, vous pouvez simplement mettre le chemin complet vers Meld.
Je préfère également que ma copie de code de travail actuelle soit affichée à gauche. J'ai donc échangé les arguments $ REMOTE et $ LOCAL. Faites également attention aux conversions de\to/et n’échappez pas les guillemets.
[diff]
tool = meld
[difftool "meld"]
cmd = \"C:/Program Files (x86)/Meld/meld/meld.exe\" $REMOTE $LOCAL
Pour Windows 7 (ou même d'autres versions de Windows), ajoutez ces lignes dans le fichier .gitconfig
.
[diff]
tool = meld
[merge]
tool = meld
[difftool "meld"]
path = C:/Program Files (x86)/Meld/meld/meld.exe
[mergetool "meld"]
path = C:/Program Files (x86)/Meld/meld/meld.exe
Notez qu'il n'est pas nécessaire d'utiliser "
pour le chemin même s'il contient des espaces. Rappelez-vous simplement d'utiliser des barres obliques au lieu de barres obliques.
Autre astuce pour les utilisateurs appelant diff depuis gitk ( en cliquant avec le bouton droit de la souris sur l’option de menu contextuel "Diff externe" ):
Les paramètres ci-dessus peuvent être remplacés par les préférences de gitk. Dans ce cas, modifiez les outils dans le menu Éditer de gitk → Préférences → Général → Diff externe .
J'ai essayé plusieurs variantes d'essayer de définir le chemin avec git config
sans succès. Puisque je veux utiliser Meld à partir de la fenêtre de la console Git Bash, ce qui a fonctionné a été d’exporter le chemin vers le répertoire Meld, de redémarrer le shell Bash et de voir git difftool --tool-help
et git mergetool --tool-help
maintenant reconnaître Meld, et je peux le choisir comme outil préféré. .
.profil
export PATH=/c/Program\ Files\ \(x86\)/Meld/:$PATH
.gitconfig
[merge]
tool = meld
[diff]
tool = meld