2010-10-28 36 views
6

J'ai lu sur un bajillion Q & A sur ce sujet même, et a suivi toutes les instructions à la lettre. Mais j'ai toujours des maux de tête en essayant de configurer Git en diff et de fusionner avec WinMerge.Git & WinMerge (msysgit)

J'ai pris les mesures suivantes à l'aide du terminal Git:

git config --global diff.tool winmerge 
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\"" 
git config --global difftool.prompt false 

J'ai également mis en place un script dans un répertoire inclus dans ma PATH variable qui se lit ainsi:

#!/bin/sh 
echo Launching WinMergeU.exe: $1 $2 
"C:/Program Files/WinMerge/WinMergeU.exe" git /e /u /dl "Base" /dr "Mine" "$1" "$2"" 

Lorsque J'exécute

git mergetool 

Dans le terminal Git, je vois:

Merging: 
first.txt 

Normal merge conflict for 'first.txt': 
    {local}: modified 
    {remote}: modified 
Launching WinMergeU.exe: 

Il me semble que les $LOCAL et $REMOTE les variables ne passent pas quoi que ce soit dans le script winmerge.sh. Qu'est-ce que je fais mal ici? Je dois assumer son dans la partie de configuration.

+0

J'ai mis à jour ma réponse avec les bons liens, et une alternative à winmerge aussi bien. – VonC

Répondre

7

par rapport à mon previous answer (ou this one, ou that one), vos étapes comprennent un guillemet supplémentaire à la fin de winmerge.sh scénario

 
    #!/bin/sh 
    echo Launching WinMergeU.exe: $1 $2 
    "C:/Program Files/WinMerge/WinMergeU.exe" 
     git /e /u /dl "Base" /dr "Mine" "$1" "$2"" 
              ^
               | 
            (this shouldn't be here) 

Cela dit, ces réponses étaient sur le point difftool en utilisant winmerge, qui ne supporte pas 3-way merge (il n'y a que local et distant, pas de base).

Pour un véritable outil de fusion, je recommanderais kdiff3 (comme dans "Is it possible for git-merge to ignore line-ending differences?") ou araxis (comme décrit dans "How to set Araxis as diff/merge tool for MSYS git?"), où vous pouvez voir les trois variables (locales, distantes et la base) utilisé.

+0

Pourriez-vous corriger votre lien? – erjiang

+0

@erjiang: les liens sont corrigés, et un commentaire important sur les outils de fusion à trois voies est ajouté. – VonC