Git, ostatnimi czasy bardzo popularny system kontroli wersji. Coraz więcej projektów korzysta z dobrodziejstw tego oprogramowania, śledzącego zmiany w kodzie źródłowym. Rosnąca popularność wpływa pozytywnie na powiększającą się ilość narzędzi, które potrafią uczynić pracę z git’em bardziej przyjemną, skuteczną, szybszą. Jednym z takich narzędzi jest tytułowy KDiff3.
KDiff3 to diff and merge tool (kompletnie nie wiem jak wyrazić to po polsku). Moim zdaniem to najlepszy merge tool z którymi miałem przyjemności pracować. Zapytacie – co odróżnia go od konkurencji? Odróżnia go to, że znakomicie radzi sobie z konfliktami. Dla mnie to bardzo dużo. Nie zawaham się nawet użyć stwierdzenia, że to kluczowa rzecz. Dlaczego? A no dlatego, że to największa zmora równoległej pracy w zespole.
Dodatkowym atutem jest łatwość rozwiązywania konfliktów, z którymi KDiff3 nie poradził sobie samodzielnie. Wystarczy kliknąć prawym myszy na konflikcie w okienku wynikowym i wybrać z menu kontekstowego z którego okienka (wersji pliku) ma pobrać kod do pliku wynikowego.
Ponadto w okienku wynikowym możemy wprowadzać zmiany „z palca”, co daje możliwość dowolnej edycji pliku wynikowego.
Integracja
Aby zintegrować KDiff3 z git’em należy wpisać poniższe komendy
git config --global merge.tool kdiff3 git config --global mergetool.kdiff3.cmd '"C:\\Program Files (x86)\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'
Lub dodać poniższe wpisy do pliku gitconfig
[merge] tool = kdiff3 [mergetool "kdiff3"] cmd = 'C:/Program Files/KDiff3/kdiff3.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" -o \"$MERGED\" trustExitCode = true
Skróty klawiszowe
[Ctrl] + [1] | Wrzuć zmiany z A |
[Ctrl] + [2] | Wrzuć zmiany z B |
[Ctrl] + [3] | Wrzuć zmiany z C |
[Ctrl] + [Arrow Down] | Skocz do następnego konfliktu |
[Ctrl] + [Arrow Up] | Skocz do poprzedniego konfliktu |
[Ctrl] + [Page Down] | Skocz do następnego nierozwiązanego konfliktu |
[Ctrl] + [Page Up] | Skocz do poprzedniego nierozwiązanego konfliktu |
[Alt] + [F4] | Zamknij aktywne okno |