wake-up-neo.net

Aktuellen Mercurial-Revisions-Hash drucken?

Gibt es einen besseren Weg, den aktuellen Revisionshash in Mercurial zu extrahieren, als

hg log -l1|grep changeset|cut -d: -f3

?

Ein Teil meines Webapp-Implementierungsskripts "markiert" den hochgeladenen App-Tarball mit seinem eindeutigen Revisionshash.

110
rentzsch

Versuchen:

hg id -i

Beispiel:

$ hg id -i
adc56745e928
178
Ry4an Brase
hg --debug id -i

Dadurch wird der lange Hash ausgegeben, mit einem Plus, wenn nicht festgeschriebene Änderungen vorhanden sind.

38
Frank

Sie können --template mit dem übergeordneten Befehl verwenden. Ich benutze das, um den langen Hash zu erhalten:

hg parent --template '{node}'
18
shadowspawn

Die Antworten und ihre Antworten zusammenfassend, scheint es, dass dies der beste Weg ist, den unique (nicht Kurzform) Bezeichner Der aktuellen Version zu drucken:

hg log -l 1 --template '{node}\n' -r .
12
rog
hg log -l 1 --template '{node|short}\n'

Siehe die Dokumente , Absätze "Die Grundlagen des Schablonierens" und folgende.

7
Alex Martelli

Der spezifischste nicht-DEPRECATED-Befehl, der aufgrund des Vorhandenseins von --template nur Revisionsinformationen drucken kann, wenn diese Prägnanz erforderlich ist (wie durch die Frage impliziert):

hg log -l 1 -b . -T '{rev}:{node|short}\n'

Oder für eine einzigartige Langform von Hash:

hg log -l 1 -r . -T '{node}\n'

-b . oder branch(.) (Punkt für Zweignamen) bezeichnet das aktuelle Arbeitsverzeichnis branch und -r . bezeichnet die aktuelle Version des Arbeitsverzeichnisses, dh documented in hg help revsets und hg help revisions .

Beachten Sie bei einer nicht festgeschriebenen Zusammenführung , der . (Punkt) zeigt nur den ersten Elternteil von zwei Elternteilen der Arbeitsgruppe an.

3

Wie andere darauf hingewiesen haben, verwenden Sie log -l nicht.

Verwenden Sie hg log -r ., um detaillierte Informationen abzurufen, anstatt hg id zu verwenden, deren Ausgabe begrenzt ist und keine Vorlagen unterstützt. Sie können auch einen kleinen Alias ​​wie here = log -r . erstellen und hg here verwenden. Wenn Sie nur den Hash wünschen, verwenden Sie hg log -r . --template '{node}\n'

1
Gru

Wenn TortoiseHg verwendet wird, klicken Sie mit der rechten Maustaste auf die Revisionszeile in der Workbench und wählen Sie "Hash kopieren" (wie in documentation ).

 enter image description here

0
texnic