2008-10-26 16 views

Odpowiedz

67

mam rozwiązać ten przy użyciu Mercurial wbudowane rozszerzenia ... Po prostu trzeba dodać następujące wiersze do Mercurial.ini (na Mercurial katalog):

[extensions] 
hgext.extdiff= 

[extdiff] 
cmd.vdiff = kdiff3 

Kiedy chcę użyć KDiff3 zamiast diff mam tylko używać:

hg vdiff file.ext 
+2

Można również przekazać opcje do difftoolu, np. '[extdiff] opts.vdiff = 2>/dev/null' – ACyclic

+0

Ta odpowiedź (i pozostałe poniżej) udostępnia inne narzędzie do porównywania, ale nie zmienia" domyślnego narzędzia różnicowego ". Oznacza to, że nie zmienia to, jakie narzędzie jest używane, gdy wywołujesz 'hg diff' - lub, co ważniejsze, gdy używasz' hg log -p', aby przyjrzeć się całej kolekcji zestawów zmian. Chciałbym znaleźć sposób, aby naprawdę zmienić domyślne? (np. aby móc używać dyferencjału opartego na słowie czasami podczas przeglądania gałęzi). –

8

Dzięki tej konfiguracji

[extdiff] 
cmd.kdiff3 = 

używam tego polecenia, aby zobaczyć diffs:

hg kdiff 

Pokazuje to drzewo katalogów ze wszystkimi plikami, które uległy zmianie. Klikasz plik, aby zobaczyć różnice dla samego pliku. Możesz dodać parametr pliku do polecenia, aby zobaczyć tylko jeden plik.

Więcej informacji here.

2

Właśnie miałem ten problem kilka minut temu; Właśnie zainstalowałem go i dodałem jego ścieżkę (domyślnie jest to c: \ program files \ kdiff3) do mojego systemu PATH e.v. Zrestartowałem moje okno, aby odebrać nową ścieżkę, a "hg kdiff3" właśnie działało. Okazuje się, że w moim bazowym pliku "mercurial.ini" znajduje się plik kdiff3, który działa dla wszystkich repozytoriów hg w systemie.

[extensions] 
hgext.extdiff = 

[extdiff] 
cmd.kdiff3 = 

[merge-tools] 
kdiff3.args = $base $local $other -o $output 
2

Jeśli szukasz czegoś podobnego git difftool, gdzie nie trzeba wpisywać nazwy plików i zobaczyć diff dla wszystkich zmienionych plików, dodać je do swojej ~/.hgrc i uruchom hg difftool.

[extensions] 
extdiff = 

[extdiff] 
cmd.vimdiff = vimdiff 

[alias] 
difftool = !for file in $(hg status -n); do hg vimdiff $file; done