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.
Versuchen:
hg id -i
Beispiel:
$ hg id -i
adc56745e928
hg --debug id -i
Dadurch wird der lange Hash ausgegeben, mit einem Plus, wenn nicht festgeschriebene Änderungen vorhanden sind.
Sie können --template mit dem übergeordneten Befehl verwenden. Ich benutze das, um den langen Hash zu erhalten:
hg parent --template '{node}'
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 .
hg log -l 1 --template '{node|short}\n'
Siehe die Dokumente , Absätze "Die Grundlagen des Schablonierens" und folgende.
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.
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'
.
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 ).