Wie kann ich den Revisionsverlauf für die Mercurial-Datei anzeigen?

106

Wie können Sie für eine bestimmte Datei in einem Mercurial-Repository den Revisionsverlauf anzeigen?

Und wie können Sie zwei Revisionen der Datei unterscheiden?

Idealerweise tun Sie dies alles mit visuellen Werkzeugen (wir verwenden ExamDiff, um einige andere Unterschiede zu machen).

Ich würde sagen, dies ist eine grundlegende Quellcodeverwaltungsfunktion, aber ich kann anscheinend nicht herausfinden, wie dies mit Mercurial gemacht wird.

Marcus Leon
quelle

Antworten:

129
hg log file

hg diff -r 10 -r 20 file
zerkms
quelle
1
Perfekt .. Funktioniert auch mit ExamDiff:hg examdiff -r 10 -r 20 file
Marcus Leon
2
Es kann auch nützlich sein, ein Schlüsselwort anstelle eines genauen Dateinamens zu suchen, hg log -k Schlüsselwort
Despertar
Dies gibt mir keine Ausgabe / Antwort; nichts passiert.
temporärer_Benutzername
27

Mit der Erweiterung hgk erhalten Sie einen hg view fileBefehl, der einen visuellen Verlauf anzeigt, von dem Sie beliebige Revisionspaare unterscheiden können.

TortoiseHg gibt Ihnen einen thg log fileBefehl, der dasselbe tut, aber besser aussieht.

Geoffrey Zheng
quelle
Sehr schön! aber 'hgtk' ist jetzt nur noch ein Wrapper, bitte benutze 'thg' unter Linux
milchplus
1
hgk funktioniert für ganze Revisionen, aber wie bringt man es dazu, einzelne Dateien zu unterscheiden ?
Keflavich
9

Zur besseren Lesbarkeit

hg diff -r revision1:revision2 file

Wobei Revision1 und Revision2 ein Tag, ein Änderungssatz usw. sein können.

Carlo Chum
quelle
5

Wenn Sie TortoiseHg verwenden: Windows-Benutzer können den Windows Explorer verwenden und den Versionsverlauf anzeigen, indem Sie mit der rechten Maustaste auf die Datei klicken.

Für Linux-Benutzer können Sie dies in TortoiseHg tun, aber ich habe eine Weile gebraucht, um herauszufinden, wie. Sie müssen mit der rechten Maustaste auf die gewünschte Datei klicken und "Dateiverlauf" auswählen. Aus irgendeinem mysteriösen Grund muss die Datei jedoch unverändert bleiben. Um die gewünschte Datei zu finden, gibt es zwei Möglichkeiten:

In ### revision set query###einem kann man eingeben:

file("**<myfile>")

Die doppelten ** sind erforderlich, um Verzeichnisse rekursiv zu durchsuchen. Dadurch erhalten Sie sofort eine Liste aller Repositorys, in denen die gewünschte Datei geändert wurde.

Alternativ können Sie neben dem ### filter text ###ersten Klick auf das Fragezeichen klicken und "Bereinigen" auswählen, um alle Dateien im Repository anzuzeigen. In der ### filter text ###Box können Sie dann die Anzahl der angezeigten Dateien eingrenzen.

Alternativ können Linux-Benutzer dies von einem Terminal aus tun, wie von Geoffrey Zheng oben vorgeschlagen:

thg log file
Jasper Uijlings
quelle
Vielleicht hat sich dies seit 2010 geändert, aber ich kann auf eine geänderte Datei in THG klicken und den Revisionsverlauf anzeigen.
UuDdLrLrSs