Sous Linux, mon outil de fusion préféré est Meld, et je n'ai eu aucun problème à l'utiliser ou à le configurer pour qu'il fonctionne avec Git. Cependant, dans Windows, la situation est différente.
Tout d'abord, j'ai installé Meld à partir d'un bundle que j'ai trouvé ici: https://code.google.com/p/meld-installer/
Ensuite, j'ai configuré mon .gitconfig comme ceci pour prendre en charge Meld comme outil de fusion par défaut
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Donc, quand j'ai un conflit, je fais git difftool et Meld s'ouvre en fait. Cependant, les chemins d'accès aux fichiers que Git écrit pour passer à l'outil de comparaison sont incorrects. Par exemple, même si Git génère les fichiers BASE, LOCAL et REMOTE dans le répertoire du référentiel (l'emplacement d'où j'ai appelé git mergetool), Meld essaie d'ouvrir chacun de ces fichiers dans le répertoire de l'exécutable.
Au lieu d'ouvrir C: \ repo \ roses.txt.LOCAL.2760.txt, Meld essaie d'ouvrir C: \ Program Files (x86) \ Meld \ meld \ roses.txt.LOCAL.2760.txt.
Quelqu'un a-t-il déjà rencontré ce problème ou sait comment configurer Git / Meld pour qu'il fonctionne correctement sous Windows?
Réponses:
Pourquoi n'utilisez-vous pas git bash pour Windows?
Après l'installation, fusionnez simplement:
C'est tout!
la source
git config --global mergetool.meld.cmd '"C:\Program Files (x86)\Meld\Meld.exe" $BASE $LOCAL $REMOTE -o $MERGED'
Cannot import: GTK+
etDLL load failed
.Schuess, faites attention au caractère espace dans les répertoires!
la source
cmd
sanspath
et utilisé des contre-indications au lieu de guillemets simples, des guillemets simples au lieu de guillemets doubles.Program_Files_x86 -> 'Program Files (x86)/'
et utilisé[mergetool "meld"] path = /mnt/c/Program_Files_x86/Meld/Meld.exe
J'ai eu exactement le même problème et j'ai trouvé que je devais forcer ma façon de faire fonctionner. Voici ce que j'ai mis dans mon fichier .gitconfig. (Notez que mon exécutable meld est dans un emplacement différent)
la source
meld
fichier dans lebin
répertoire (j'ai en fait renommé le fichiermeld.py
) et cela a fonctionné sans problème.Les fenêtres:
Vous pouvez utiliser ces deux commandes ( comme le dit Arugin ) - en utilisant le chemin approprié vers Meld.exe:
OU vous pouvez simplement modifier votre
C:\Users\YOUR_USER_NAME\.gitconfig
fichier directement et ajouter ce qui suit à la fin de celui-ci:Maintenant, appelez
git difftool
Git Bash pour Windows et Meld s'ouvrira en tant que visualiseur de difftool par défaut.Linux:
MISE À JOUR 20 septembre 2019:
- Je pourrais aussi bien mettre la version Linux ici aussi pour ma propre référence en un seul endroit si rien d'autre:
Pour Linux, c'est aussi très simple:
Ensuite, ajoutez au bas du fichier .gitconfig:
C'est tout!
git difftool
fonctionne maintenant sur Linux Ubuntu!En relation:
la source
J'ai trouvé une solution dans un rapport de bogue sur le programme d'installation de meld, sur cette page:
https://code.google.com/p/meld-installer/issues/detail?id=11
Pour autant que je sache, le problème est que le programme meld.exe (qui exécute meld via l'interpréteur python) définit inutilement le répertoire de travail de la commande sur celui de meld.exe. Cela entraîne une interprétation incorrecte des chemins relatifs lorsqu'ils sont passés en tant qu'arguments de ligne de commande.
La solution est de remplacer le meld.exe fourni par un généré en compilant le fichier meld.ahk, en utilisant AHK2EXe (script AutoHotKey -> exe). Il suffit de télécharger le script le plus bas de la page, car il y a eu quelques versions publiées là-bas.
la source
J'ai aussi rencontré un problème similaire.Le système d'exploitation utilisé est Windows 10 et les changements suivants ont fonctionné pour moi.Il semble plus comme un problème de chemin
la source
Pour une raison quelconque, dans Windows 10, la variable d'environnement PATH n'a pas pu être définie correctement lors de l'installation, donc une exception étrange est levée indiquant qu'il ne peut pas trouver certains .dll qui se trouvent sous "C: \ Program Files (x86) / Répertoire Meld / bin ".
Une solution de contournement pour moi était, exécutez dans git bash:
Ou ajouter à Windows PATH
la source
Aucune des réponses n'a fonctionné pour moi. J'ai fini avec ceci dans le fichier .gitconfig:
Après une
git merge mybranch
fin avec des conflits, il vous suffit de tapergit mergetool
et de fusionner s'ouvre. Après une sauvegarde, vous devez vous engager dans git et les conflits sont résolus.Pour une raison quelconque, cela ne fonctionnait qu'avec Meld 3.18.x, Meld 3.20.x me donne une erreur.
la source
Après avoir essayé tout ce qui précède, configurer Meld pour qu'il s'exécute en tant qu'administrateur a fonctionné pour moi.
Run this program as an administrator
caseLes erreurs que j'ai reçues
c:\windows\temp\meld-*
faisaient référence à des fichiers temporaires tels que , qui n'étaient pas créés. L'élévation des autorisations de Meld semble faire l'affaire car elle fonctionne maintenant avec les deuxgit difftool
et s'exécute manuellement dans Meld.la source