2009-11-17 10 views
12

In Git wird die aktuelle Revision Hash inWie bekomme ich die aktuelle Merkurrevision, ohne hg aufzurufen?

gespeichert
.git/refs/heads/master 

Gibt es ein Äquivalent in Mercurial, die mich keinen Anruf verlangen hg log -l1? Ich weiß, dass ich den aktuellen Zweig in .hg/branch bekommen kann.

Dies ist die "Anzeige" der aktuellen HG-Hash auf dem Bildschirm beim Durchsuchen einer Webseite.

Antwort

25
$ hg parents --template="{node}\n" 
52b8cee1e59c91b9147635b7f44a3a8896ee0b00 

$ hexdump -n 20 -e '1/1 "%02x"' .hg/dirstate 
52b8cee1e59c91b9147635b7f44a3a8896ee0b00 

Aber warum können Sie nicht einfach anrufen hg parents --template="{node}\n"?

+5

Ich bin beeindruckt von deinen binären Fähigkeiten :) – tonfa

+3

Heh, ich habe dirstate.py gerade geöffnet und bemerkt, dass die Eltern-Hashes die ersten zwei zwanzig waren Byteabschnitte von dirstate.py. Ein bisschen Googeln brachte mir den richtigen Hexdump Formatierungsstring (Gott, diese Dinge sind schrecklich). –

0

Ich bin kein Quecksilberexperte, aber die Vorschlaghammermethode zu nehmen und einen Grep für den aktuellen Revisions-Hash in .hg zu machen, ergibt nur einen möglichen, und das ist .hg/branchheads.cache.

Ich glaube, dass dies alle Köpfe des Repository zwischenspeichert, so dass es mehrere Einträge haben kann. Standardmäßig denke ich, dass es immer zwei Einträge haben wird, einen für den Standard-Zweig und einen für die Tipp-Revisionsnummer.

Ich denke, dass branchheads.cache immer dann neu erstellt wird, wenn neue Changesets ankommen, so sollte es immer den richtigen aktuellen Revisions-Hash haben.

+2

grep für die binäre Version :) (es ist eigentlich in '.hg/dirstate') – tonfa

+1

Fair enough - ich weg, dass Vorschlaghammer sperren sollte und Gehirn eingreifen. – Tom

+0

Das Problem dabei ist, dass es die Köpfe der Branche zeigt, und es wird falsch sein, die aktuelle rev anzuzeigen, wenn Sie nicht auf einer Zweigstelle sind. (über 'hg up 3', wenn der Tipp und alle anderen Zweige höher sind) – Eric

2

hg id --debug -i -r .

+2

Die Frage wurde gestellt "ohne hg anzurufen" – mjs

Verwandte Themen