2012-06-04 16 views
22

mam konfliktów, więc wpisuję:KDiff3 nie otworzy polecenia mergetool

git mergetool 

I wtedy pojawia się komunikat mówiąc:

powrót Hit zacząć scalać rozdzielczo narzędzie o

Normalnie, gdy to robię, otwiera się kdiff3, aby scalić różnice.

Teraz, gdy to zrobię, po prostu przejdzie do następnego pliku, a kdiff3 w ogóle się nie otwiera.

Potrójnie szczypałem moją konfigurację git i moją ścieżkę systemową i wszystko wydaje się idealne. Plik konfiguracyjny wygląda następująco:

[merge] 
    tool = kdiff3 
[mergetool "kdiff3"] 
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe 
[diff] 
    guitool = kdiff3 
[difftool "kdiff3"] 
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe 
[core] 
    editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor autocrlf = true 
[user] 
    name = James Farrell 
    email = [email protected] 
[github] 
    user = whygosystems 
    token = 87d00c2e613b3a7c8c1be817b75b8a33 
[diff] 
    external = C:/Program Files (x86)/Git/cmd/git-diff-wrapper.sh 

Ktoś ma jakieś pomysły, co może być nie tak?

Mam wrażenie (choć mogę się mylić, że to nie był problem, ponieważ po zainstalowaniu nowego GitHub Windows Client) ....

+0

Miałem problem od czasu do czasu, a ponowne uruchomienie komputera zawsze pomagało. Nie mam pojęcia, dlaczego. – eis

+0

@ Dzięki, uruchomiłem się ponownie i to nie pomogło. – iKode

+1

Miał ten sam problem, dla mnie pomógł ten [obejście] (http://stackoverflow.com/a/15813064/1132850). – PiQuer

Odpowiedz

5

I nie był używany git do tego celu w systemie Windows za jakiś czas, ale twój plik konfiguracyjny pokazuje kilka interesujących różnic dotyczących: ciągów programu.

[core] 
    editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor autocrlf = true 

vs

[difftool "kdiff3"] 
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe 

Podejrzewam, że może być jakiś problem ze spacjami w nazwie programu. Spróbuj ustawić swój diff/mergetool ścieżki wykonywalnych do:

path = \"c:/Program Files (x86)/KDiff3/kdiff3.exe\" 
21

Zdaję sobie sprawę, to jest stary, ale dla przyszłych pracowników Google, KDiff3 posiada również opcję gdzie jeśli scalanie jest trywialne, to będzie go rozwiązać po cichu i nawet nie pokazują okno.

Miałem, że zdarzyło mi się to w przeszłości, więc może to być to, co się dzieje dla Ciebie. Myślę, że opcja ta nazywa się "Automatycznie zapisz i zakończ przy scalaniu bez konfliktów".

+3

Ta opcja jest rzeczywiście cyprysiem, ale zawsze jest wywoływana, ponieważ git wywołuje 'kdiff3' z flagą' --auto', więc nie pomaga wyłączyć tej opcji w kdiff3. Aby obejść ten problem, zobacz moją odpowiedź na to [podobne pytanie] (http://stackoverflow.com/a/15813064/1132850). – PiQuer

2

Ponownie, dla przyszłych pracowników Google:

od wersji 2.48.02 (29 listopada 2014), Git Extensions rozpoczęła dystrybucję wersji 64-bitowej KDiff3. (Patrz https://github.com/gitextensions/gitextensions/blob/master/GitUI/Resources/ChangeLog.md#version-24802-29-november-2014.)

Jeśli więc używasz 32-bitowego systemu operacyjnego i instalator Git Extensions zainstalował kdiff3, Twój kdiff3 nawet nie będzie działał sam. Rozwiązaniem jest pobranie wersji 32-bitowej (http://sourceforge.net/projects/kdiff3/files/kdiff3/) i ponowne zainstalowanie. Nie musiałem nawet najpierw odinstalować wersji 64-bitowej, ponieważ instalator po prostu nadpisał poprzednią instalację.