example create hash mercurial revision

create - Imprimir hash de revisión mercurial actual?



perl hash (7)

Como otros han señalado, no use log -l .

Use hg log -r . para obtener información detallada, en lugar de usar la hg id cuyo resultado es limitado y no admite plantillas. También podría crear un pequeño alias como here = log -r . y usa hg here . Si solo quiere el hash, use hg log -r . --template ''{node}/n'' hg log -r . --template ''{node}/n'' .

¿Hay una mejor manera de extraer el hash de revisión actual en Mercurial que

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

?

Parte de mi secuencia de comandos de implementación de aplicaciones web "etiqueta" el tarball de la aplicación cargada con su hash de revisión exclusivo.


El comando más específico no DEPURADO que debido a la presencia de --template puede imprimir solo información de revisión si esa concisión es requerida (como lo implica la pregunta):

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

O para la forma única larga de hash:

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

El -b . o branch(.) (punto para el nombre de la rama) significa la rama actual del directorio de trabajo y -r . significa la revisión actual del directorio de trabajo, que está documented en hg help revsets y hg help revisions .

Tenga en cuenta si hay una fusión no confirmada , el . (punto) solo muestra el primer padre de dos padres del grupo de trabajo.


Puedes usar --template con el comando padre, yo uso esto para obtener el hash largo:

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


Resumiendo las respuestas y sus respuestas, parece que esta es la mejor manera de imprimir el identificador único (no de forma abreviada) de la versión actual :

hg log -l 1 --template ''{node}/n'' -r .


Tratar:

hg id -i

Ejemplo:

$ hg id -i adc56745e928


hg --debug id -i

Esto generará el hash largo, con un más si hay cambios no confirmados.


hg log -l 1 --template ''{node|short}/n''

Consulte los documentos , los párrafos "Conceptos básicos de la creación de plantillas" y siguientes.