Jak wyświetlić historię zmian dla pliku Mercurial?

106

W przypadku danego pliku w repozytorium Mercurial, jak wyświetlić historię zmian?

Jak możesz porównać dwie wersje pliku?

Najlepiej robić to wszystko za pomocą narzędzi wizualnych (używamy ExamDiff do wykonywania innych różnic).

Powiedziałbym, że jest to podstawowa funkcja kontroli źródła, ale nie wiem, jak to zrobić z Mercurialem.

Marcus Leon
źródło

Odpowiedzi:

129
hg log file

hg diff -r 10 -r 20 file
zerkms
źródło
1
Idealnie .. Działa również z ExamDiff:hg examdiff -r 10 -r 20 file
Marcus Leon,
2
przydatne może być również wyszukanie słowa kluczowego zamiast dokładnej nazwy pliku, hg log -k słowo kluczowe
Despertar
To daje mi zerową wydajność / odpowiedź; nic się nie dzieje.
temporary_user_name
27

Przedłużenie HGK daje hg view filekomendę, która pokazuje historię wizualną, od którego można diff / vdiff dowolną parę zmian.

TortoiseHg daje thg log filepolecenie, które robi to samo, ale wygląda lepiej.

Geoffrey Zheng
źródło
bardzo dobrze! ale „hgtk” jest teraz tylko opakowaniem, proszę używać „thg” na Linuksie
milkplus
1
hgk działa dla całych wersji, ale jak to zrobić, aby porównać poszczególne pliki ?
keflavich
9

Dla czytelności

hg diff -r revision1:revision2 file

Gdzie wersja 1 i wersja 2 mogą być etykietą, zestawem zmian itp.

Carlo Chum
źródło
5

Jeśli używasz TortoiseHg: użytkownicy Windows mogą używać Eksploratora Windows i przeglądać historię wersji, klikając prawym przyciskiem myszy plik.

Użytkownicy Linuksa mogą to zrobić w TortoiseHg, ale zajęło mi trochę czasu, zanim zrozumiałem, jak to zrobić. Należy kliknąć żądany plik prawym przyciskiem myszy i wybrać „Historia plików”. Jednak z jakiegoś tajemniczego powodu plik musi pozostać niezmieniony. Ponadto, aby znaleźć żądany plik, istnieją dwie opcje:

W ### revision set query###jednym można wpisać:

file("**<myfile>")

Podwójne ** są niezbędne do rekurencyjnego przeszukiwania katalogów. To daje natychmiastową listę wszystkich repozytoriów, w których żądany plik został zmieniony.

Alternatywnie, obok ### filter text ###najpierw kliknij znak zapytania i wybierz „wyczyść”, aby zobaczyć wszystkie pliki w repozytorium. Następnie w ### filter text ###polu możesz zawęzić liczbę wyświetlanych plików.

Alternatywnie użytkownicy Linuksa mogą to zrobić z terminala, jak zasugerował Geoffrey Zheng powyżej:

thg log file
Jasper Uijlings
źródło
Może zmieniło się to od 2010 roku, ale mogę kliknąć zmodyfikowany plik w THG i wyświetlić historię wersji.
UuDdLrLrSs