2010-10-28 19 views
6

Przeczytałem o bajillionie Q & A na ten temat i wykonałem wszystkie instrukcje do tego listu. Ale wciąż mam bóle głowy, próbując skonfigurować Gita do różnicowania i łączenia za pomocą WinMerge.Git & WinMerge (msysgit)

mam podjąć następujące kroki przy użyciu terminala Git:

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

Ja również skonfigurować skrypt w katalogu zawarte w moim zmiennej PATH które brzmi:

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

Kiedy Wykonuję

git mergetool 

Na terminalu Git widzę:

Merging: 
first.txt 

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

Więc wydaje mi się, że $LOCAL i $REMOTE zmienne nie przechodzą coś w skrypcie winmerge.sh. Co ja tu robię źle? Muszę go założyć w części konfiguracyjnej.

+0

Zaktualizowałem swoją odpowiedź odpowiednimi linkami, a także alternatywą dla Winmerge. – VonC

Odpowiedz

7

porównaniu z moim previous answer (lub this one lub that one), swoje kroki obejmują dodatkowy cudzysłów na końcu winmerge.sh skryptu

 
    #!/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) 

tym mówi, te odpowiedzi były o difftool użyciu winmerge, który nie obsługuje 3-way merge (jest tylko lokalny i zdalny, bez bazy).

dla prawdziwego narzędzia seryjnej, polecam kdiff3 (jak w „Is it possible for git-merge to ignore line-ending differences?”) lub araxis (jak opisano w "How to set Araxis as diff/merge tool for MSYS git?"), gdzie można zobaczyć trzy zmienne (lokalne, zdalne i bazy) używane.

+0

Czy możesz naprawić swój link? – erjiang

+0

@erjiang: Naprawiono linki i dodano ważny komentarz dotyczący narzędzi do scalania trójstronnego. – VonC