Aby śledzić odpowiedź Charlesa Baileya, oto moja konfiguracja git, która używa p4merge (darmowego narzędzia do łączenia na trzy platformy); przetestowany na instalacji msys Git (Windows):
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
lub z powłoki Windows cmd.exe druga linia staje się:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Zmiany (w stosunku do Charlesa Baileya):
- dodane do globalnej konfiguracji git, tzn. ważne dla wszystkich projektów git, nie tylko bieżących
- wartość konfiguracji narzędzia niestandardowego znajduje się w „scaletool. [narzędzie] .cmd”, a nie w „scaleniu. [narzędzie] .cmd” (głupia ja, spędziłem godzinę na rozwiązywaniu problemów, dlaczego git narzeka na nieistniejące narzędzie)
- dodałem podwójne cudzysłowy dla wszystkich nazw plików, aby pliki ze spacjami nadal mogły być znalezione przez narzędzie scalania (przetestowałem to w msys Git z Powershell)
- zwróć uwagę, że domyślnie Perforce doda katalog instalacyjny do PATH, dlatego nie trzeba podawać pełnej ścieżki do p4merge w poleceniu
Pobierz: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDYCJA (luty 2014)
Jak zauważył @Gregory Pakosz , najnowszy msys git teraz „natywnie” obsługuje p4merge (testowany na 1.8.5.2.msysgit.0 ).
Możesz wyświetlić listę obsługiwanych narzędzi, uruchamiając:
git mergetool --tool-help
Powinieneś zobaczyć p4merge na dostępnej lub prawidłowej liście. Jeśli nie, zaktualizuj swój git.
Jeśli p4merge został wymieniony jako dostępny , znajduje się w twojej ŚCIEŻCE i musisz tylko ustawić merge.tool :
git config --global merge.tool p4merge
Jeśli została ona uznana za ważny , trzeba określić mergetool.p4merge.path oprócz merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Powyżej znajduje się przykładowa ścieżka, gdy p4merge został zainstalowany dla bieżącego użytkownika, a nie w całym systemie (nie wymaga uprawnień administratora ani podniesienia uprawnień UAC)
- Chociaż
~
powinien rozwinąć się do katalogu domowego bieżącego użytkownika (więc teoretycznie powinna to być ścieżka ~/AppData/Local/Perforce/p4merge.exe
), nie działało to dla mnie
- Jeszcze lepiej byłoby skorzystać ze zmiennej środowiskowej (np.
$LOCALAPPDATA/Perforce/p4merge.exe
), Git nie wydaje się rozszerzać zmiennych środowiskowych dla ścieżek (jeśli wiesz, jak to zrobić, daj mi znać lub zaktualizuj tę odpowiedź)