2010-08-11 5 views
94

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

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

Im Idealfall all dies mit visuellen Werkzeugen (wir verwenden ExamDiff, um einige andere Diffs zu machen).

Ich würde sagen, das ist grundlegende Source Control-Funktionalität, aber ich kann nicht herausfinden, wie dies mit Mercurial zu tun.

Antwort

116
hg log file 

hg diff -r 10 -r 20 file 
+1

Perfekt .. Arbeitet mit ExamDiff auch: 'hg examdiff -r 10 -r 20 file' –

+2

kann es auch nützlich sein, um ein Schlüsselwort anstelle eines genauen Dateinamens zu suchen, hg log -k Schlüsselwort – Despertar

+0

Dies gibt mir null Ausgabe/Antwort; nichts passiert. – Aerovistae

23

Der hgk extension gibt Ihnen hg view file Befehl, der eine visuelle Geschichte zeigt, von der aus Sie diff/Vdiff beliebiges Paar von Revisionen.

TortoiseHg gibt Ihnen thg log file Befehl, der das gleiche tut, aber sieht besser aus.

+0

sehr schön! aber 'hgtk' ist jetzt nur ein Wrapper, bitte benutz '' thg 'unter linux – milkplus

+1

hgk funktioniert für ganze Revisionen, aber wie bekommst du es, einzelne * Dateien * zu unterscheiden? – keflavich

8

Zur besseren Lesbarkeit

hg diff -r revision1:revision2 file 

Wo revision1 und revision2 ein Tag sein kann, changeset usw.

3

Wenn Sie TortoiseHg: Windows-Benutzer können Windows Explorer verwenden und die Revisionshistorie mit einem Rechtsklick sehen auf der Datei.

Für Linux-Benutzer können Sie es innerhalb TortoiseHg tun, aber es dauerte eine Weile, um herauszufinden, wie. Sie müssen mit der rechten Maustaste auf die gewünschte Datei klicken und "File History" auswählen. Aus irgendeinem mysteriösen Grund muss die Datei jedoch unverändert bleiben. Darüber hinaus die gewünschte Datei zu finden gibt es zwei Möglichkeiten:

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

file("**<myfile>") 

Die Doppel ** sind notwendig Verzeichnisse rekursiv zu durchsuchen. Sie erhalten sofort eine Liste aller Repositories, in denen die gewünschte Datei geändert wurde.

Alternativ neben der ### filter text ### klicken Sie zuerst auf das Fragezeichen und wählen Sie "clean", um alle Dateien im Repository zu sehen. Dann können Sie innerhalb der ### filter text ### Box die Anzahl der angezeigten Dateien eingrenzen.

Alternativ Linux-Anwender es von einem Terminal tun kann, wie von Geoffrey Zheng oben vorgeschlagen:

thg log file 
+0

Vielleicht hat sich das seit 2010 geändert, aber ich kann auf eine modifizierte Datei in THG klicken und den Revisionsverlauf anzeigen. – DaveInCaz

Verwandte Themen