J'essaie de réaliser ma première fusion Git (excitant!), Mais je ne parviens pas à obtenir Git Gui (0.13.GITGUI 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 apporté les modifications de configuration 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, lorsque je lance Git Gui et que je tente d'exécuter l'outil de fusion, le message d'erreur Unsupported merge tool 'tortoisemerge'
s'affiche.
Quelqu'un peut-il me dire ce que j'ai mal fait? Voici les sections pertinentes de mon ~/.gitconfig
:
[merge]
tool = tortoisemerge
[mergetool "tortoisemerge"]
cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
Mettre à jour
TortoiseMerge fonctionne bien avec la configuration ci-dessus lorsque git mergetool
est exécuté à partir de la ligne de commande. Il semble que seul Git Gui ait des problèmes avec cela. : - /
Si vous avez le dernier git, lancez cette ligne de commande une fois:
git config merge.tool tortoisemerge
Important: N'ajoutez pas d'extension .exe
à la commande.
Si cela échoue, ou si vous souhaitez ajouter un autre outil de fusion que git ne connaît pas, procédez comme suit:
Ouvrez l'un des éléments suivants dans un éditeur:
C:\Program Files\Git\mingw64\share\git-gui\lib\mergetool.tcl
C:\Program Files (x86)\Git\share\git-gui\lib\mergetool.tcl
Ajoutez quelque chose comme ceci à mergetool.tcl:
tortoisemerge {
set cmdline [list TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"]
}
Placez la nouvelle entrée tortoisemerge au-dessus de cet autre code:
default {
error_popup [mc "Unsupported merge tool '%s'" $tool]
return
}
Exemple de bonus:
Pour utiliser SourceGear diffmerge, ajoutez ceci à mergetool.tcl:
diffmerge {
set cmdline [list "C:/Program Files (x86)/SourceGear/DiffMerge/DiffMerge.exe" --merge --result=$MERGED $LOCAL $BASE $REMOTE]
}
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/
Pour le cas sur lequel je travaillais, le Mergetool était déjà configuré pour une réémergence, mais il ne pouvait pas 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\""
Essayez de taper TortoiseMerge.exe
à partir de la ligne de commande pour vous assurer qu'il est dans le chemin. Sinon, ajoutez-le via Poste de travail> Propriétés> Avancé> Variables d'environnement> Variables système: Chemin.
Puis à partir de la commande Invite, configurez-le 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 depuis la commande Invite, tapez git difftool
à partir de votre répertoire de travail git.
Il affiche les fichiers un à un, il est donc préférable d’installer TortoiseGit, qui facilite la gestion, même s’il ne s’agit que de la partie diff.
Ce problème semble résolu dans le dernier git (j'ai git version 1.9.4.msysgit.1
).
C:\git\build>git mergetool
This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
tortoisemerge emerge vimdiff
C:\git\build>git config merge.tool tortoisemerge
C:\git\build>git mergetool
No files need merging