2010-05-08 3 views
30

Wenn nicht, ist das ein Feature, das Git hat?Kann ich Hg-Protokoll erhalten, um den Verlauf in umgekehrter Reihenfolge zu drucken?

+0

Es ist bereits in umgekehrter Richtung kann nicht gedruckt werden, müssen Sie Reverse-Rückwärts- (oder vorwärts). Daher geben einige der Antworten die normale Reihenfolge (umgekehrt). –

+0

Es gibt eine Möglichkeit, es mit '-G' (Grafik) zu arbeiten? Ich habe 'hg log | verwendet tac' aber die '/' s und '' s kommen in die falsche Richtung (und es gibt keine Farbe). Ich brauche es nur für die Verwendung mit '-G' –

Antwort

41

YGL's answer ist die richtige für Protokoll finden this thread:

Der Hinweis von "hg help log" könnte sein:
„Wenn keine Revision Bereich ist angegeben, der Standardwert ist Tipp: 0 ". Kombinieren Sie dies mit dem Wissen aus "hg help multirevs". Das heißt:

hg log -r :

multirevs:

Wenn Mercurial mehr als eine Änderung akzeptiert, können sie individuell festgelegt werden, oder als topologisch kontinuierlichen Bereich vorgesehen, getrennt durch das ":" Zeichen.

Die Syntax Notation ist Bereich [BEGIN]:[END], wo BEGIN und END Revisions Identifikatoren sind.
Sowohl BEGIN als auch END sind optional.
Wenn BEGIN nicht angegeben ist, wird standardmäßig die Revisionsnummer 0 verwendet.
Wenn END nicht angegeben ist, wird standardmäßig der Tipp verwendet.
Der Bereich ":" bedeutet also "alle Revisionen".

Wenn BEGIN größer als END werden Revisionen in umgekehrter Reihenfolge behandelt.

Ein Bereich wirkt als geschlossenes Intervall. Dies bedeutet, dass eine Reihe von 3:5 gibt 3, 4 und 5
In ähnlicher Weise eine Reihe von 9:6 gibt 9, 8, 7 und 6.


Hinweis: Wenn Sie das gleiche tun wollen mit Graphlog (die glog, die außer wie (eine Untergruppe von) der normale log Befehl verhält, dass er druckt auch eine Grafik, die die Revisionshistorie mit ASCII-Zeichen links von der log darstellt.), werden Sie a patch benötigen.

Ich sollte Sie warnen, dass es sehr langsam für große Graphen sein wird, vor allem 0:tip.
Siehe patch 1 und patch 2. Ich arbeite daran, das zu verbessern.

22

Haben Sie versucht,

hg log -r :

10

Wenn Sie möchten, dass umgekehrter Reihenfolge als Standard festlegen, fügen Sie folgende Zeile zu hgrc (<Repo> /.hg/hgrc, $ HOME/.hgrc,/etc/Mercurial/hgrc):

[defaults] 
log = -r : 
+1

Ich gehe davon aus, dass dies das Standardverhalten von HG-Protokoll ändert, um den Verlauf in umgekehrter Reihenfolge anzuzeigen. –

+3

Ich habe das zuerst geupdated, aber jetzt merke ich, dass dies für mich nicht funktioniert, da es die Fähigkeit für HG-Log bricht, um eine einzelne Revision zu zeigen. Das heißt, hg log zeigt jetzt Revisionen in umgekehrter Reihenfolge an. Gut. Allerdings zeigt hg log -r 25 nicht nur changeset 25 an - es wird immer noch die gesamte Liste der changesets angezeigt. – firebush

6

eine Alternative zur Antwort des nad2000 wäre einfach ein Alias ​​in ~/.hgrc

[alias] 
logr = log -r : 

Jetzt hg logr zeigt die Protokolle in umgekehrter Reihenfolge aufrufen hinzuzufügen. Wie von VonC aufgezeigt, kann derselbe Alias-Typ leider nicht für glog definiert werden, da hg glog -r : die Protokolle nicht in umgekehrter Reihenfolge anzeigt.

+3

+1 Das Hinzufügen eines Alias ​​scheint eine bessere Idee zu sein als das Ändern des Standardverhaltens. (@firebush erklärt warum) –

1

nicht sicher, ob dies inzwischen geändert hat oder ich habe etwas falsch gemacht, aber ich habe umgekehrter chronologischer Reihenfolge Protokolle von Mercurial wie folgt aus:

hg log -r tip:0 

Ich beschränke sie in der Regel auf die neuesten Protokolleinträge zu , mit -l:

hg log -r tip:0 -l 3 
4

Nur um

Revset (long) Version zu erwähnen:

hg log -r "sort(all(),-date)"

+0

Dies ist wirklich die richtige Antwort. 'log -r:' funktioniert nicht, wenn Sie ein DAG-Protokoll (: :) anstelle eines chronologischen Protokolls (:) benötigen. –

3

Ich bin überrascht, niemand erwähnt Reverse() vor. Vielleicht ist es eine neuere HG-Funktion?

hg log -r "reverse(all())"

Sicher, Sie könnten mit Spitze gehen: 0 als auch. Ich mag es umgekehrt, weil ich es auch oft benutze, wenn es mit Vorfahren gemischt wird.

hg log -r "reverse(::12345)"

Verwandte Themen