45 votes

Pourquoi ne puis-je pas utiliser TortoiseMerge comme outil de fusion git sous Windows?

Je suis en train de faire mes premières Git merge jamais (passionnant!), mais ne peut pas obtenir Git Gui (de 0,13.GITGUI à partir de Git 1.7.4.msysgit.0) pour reconnaître TortoiseMerge (1.6.11.20210 x64) sur Windows 7. Basé sur une réponse à une question similaire, j'ai fait les modifications suivantes:

$ git config --global merge.tool tortoisemerge
$ git config --global mergetool.tortoisemerge.cmd 'TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"'
$ git config --global --list
...snip...
merge.tool=tortoisemerge
mergetool.tortoisemerge.cmd=TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
$

Malheureusement, quand j'ai commencer à Git Gui et tenter de "lancer l'Outil de Fusion", je reçois l'erreur Unsupported merge tool 'tortoisemerge'.

Quelqu'un peut me dire ce que j'ai fait de mal? Voici les sections pertinentes de la ma ~/.gitconfig:

[merge]
        tool = tortoisemerge
[mergetool "tortoisemerge"]
        cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"

Mise à jour

TortoiseMerge fonctionne très bien avec la config ci-dessus lors de l'exécution d' git mergetool à partir de la ligne de commande. Il semble que le Git Gui a des problèmes avec elle. :-/

57voto

Chris Dragon Points 661

Je n'ai pas tortoisemerge installé donc je ne peux pas tester, mais je suis sûr que le problème est que git gui utilise un fichier appelé C:\Program Files (x86)\Git\share\git-gui\lib\mergetool.tcl pour définir chaque outil de fusion il travaille, et il montre que "non pris en charge l'outil de fusion" erreur de fusionner les outils définis dans .gitconfig qui ne correspondent pas à l'un de ceux définis dans mergetool.tcl.

Donc, pour le faire fonctionner, vous devriez être en mesure d'ajouter quelque chose comme cela pour mergetool.tcl:

tortoisemerge {
    set cmdline [list TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"]
}

Mettre le nouveau tortoisemerge entrée au-dessus de ce code:

default {
        error_popup [mc "Unsupported merge tool '%s'" $tool]
        return
}

17voto

Jake Points 939

Essaye ça:

 [merge]
tool = tortoise

[mergetool "tortoise"]
cmd = "TortoiseMerge.exe" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
 

Source: http://programmersunlimited.wordpress.com/2010/07/01/getting-git-to-use-tortoisemerge/

5voto

jnrcorp Points 318

Pour le cas sur lequel je travaillais, le Mergetool était déjà en train d’être testé, mais il n’a pas pu le trouver.

Fournir un emplacement pleinement qualifié fonctionnant sous Windows:

 git config --global mergetool.tortoisemerge.cmd "\"C:\\Program Files\\TortoiseGit\\bin\\TortoiseGitMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\""
 

2voto

aleemb Points 12138

Essayez de taper TortoiseMerge.exe à partir de la ligne de commande pour s'assurer qu'il est dans le chemin. Si pas de l'ajouter via le poste de travail > Propriétés > Avancé > Variables d'Environnement > les Variables du Système:Chemin d'accès.

Puis, à partir de l'invite de commande configurer via les commandes suivantes

git config --replace --global diff.tool tortoisemerge
git config --replace --global difftool.diffmerge.cmd "TortoiseMerge.exe -base:\"$BASE\" -theirs:\"$REMOTE\" -mine:\"$LOCAL\" -merged:\"$MERGED\""
git config --replace --global difftool.prompt false

Pour l'utiliser à partir de l'invite de commandes, tapez git difftool de votre au sein de votre git répertoire de travail.

Il montre les fichiers un à un moment de sorte que vous êtes toujours mieux de l'installation de TortoiseGit ce qui rend les choses plus faciles à manipuler, même si c'est juste pour la diff de la partie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X