Tenga en cuenta que hg log -l 1le ofrece el conjunto de cambios más reciente, ¡no necesariamente el que está actualizando actualmente! El indicador -f limita la salida del registro hg a los antepasados del directorio de trabajo actual, por lo que hg log -f -l1está más cerca de lo que desea.
En caso de que las personas pierdan las soluciones a continuación si desea el uso completo de hash: hg --debug id -isi desea usar el soporte de plantillas hg parent --template '{node}' No use hg log -l 1, es el último conjunto de cambios del repositorio, no el conjunto de cambios de la copia de trabajo actual.
Joseph Lisee
77
No se recomienda el uso de --debug en los scripts, esa salida se controla con menos cuidado con compatibilidad con versiones anteriores. Usa la plantilla. Si desea hacerlo con log, use .dot como la revisión.
Ry4an Brase
Gracias Ry4an no tenía idea sobre "-r". haciendo referencia a la revisión actual de la copia de trabajo. Ese parece ser el mejor movimiento que cambiar de "log" a "parent".
Joseph Lisee
No hay problema. hg help revisionsy hg help revsetstiene algunos atajos poderosos como ese.
Ry4an Brase
Pero no es el más respuesta concreta a la pregunta, porque yo sepa hg id -iimprime sólo el corto (12 caracteres) Forma de la ID de hash global y desde hg identifycarece --templateafaics no hay manera de extraer sólo la revisión y otra cosa desde la página del manual dice que Imprime un resumen.
Shelby Moore III
41
hg --debug id -i
Esto generará el hash largo, con un plus si hay cambios no confirmados.
La página de manual de hg dice que hg parentsestá DEPRECADO , aunque quizás ese no haya sido el caso cuando escribió esta respuesta. Si hay una fusión no comprometida, hay dos revisiones principales .
Shelby Moore III
2
¿Alguien puede decirnos por qué hg parents está en desuso y qué debemos usar en su lugar?
Vincent
17
Resumiendo las respuestas y sus respuestas, parece que esta es la mejor manera de imprimir el identificador único (no de forma corta) de la versión actual :
Quería casi esto, pero con el largo hash. Alias lidpara log -l 1 --template '{node}\n'lograr exactamente esto: imprima la ID de revisión completa.
Michael Ekstrand
66
Esto imprime el conjunto de cambios extraído más reciente. Nuestro directorio de trabajo podría actualizarse a un conjunto de cambios más antiguo. Para imprimir el conjunto de cambios al que estamos actualizados, use "hg id". El único problema es que "hg id" no admite plantillas ni tiene una opción para imprimir hash largo (a menos que alguien sepa cómo hacerlo).
Eiver
1
Como dijo Eiver, esto no imprime la revisión real en su copia de trabajo, solo la última en su repositorio. Debido a que el uso de esta solución podría introducir errores de seguimiento, he rechazado esta solución.
Joseph Lisee
1
El mismo voto negativo de Joe. También @Eiver usa hg --debug id -icomo se dice en otra parte.
AJP
3
El comando no DEPRECADO más específico que, debido a la presencia de --template, solo puede imprimir información de revisión si se requiere esa concisión (como lo implica la pregunta):
Utilícelo hg log -r .para obtener información detallada, en lugar de utilizar hg idcuya salida es limitada y no admite plantillas. También puede crear un pequeño alias como here = log -r .y usar hg here. Si solo quieres usar hash hg log -r . --template '{node}\n'.
En caso de que se use TortoiseHg, haga clic con el botón derecho en la fila de revisión en el Workbench y seleccione "Copiar hash" (según la documentación ).
hg log -l 1
le ofrece el conjunto de cambios más reciente, ¡no necesariamente el que está actualizando actualmente! El indicador -f limita la salida del registro hg a los antepasados del directorio de trabajo actual, por lo quehg log -f -l1
está más cerca de lo que desea.Respuestas:
Tratar:
Ejemplo:
fuente
hg --debug id -i
si desea usar el soporte de plantillashg parent --template '{node}'
No usehg log -l 1
, es el último conjunto de cambios del repositorio, no el conjunto de cambios de la copia de trabajo actual..
dot como la revisión.hg help revisions
yhg help revsets
tiene algunos atajos poderosos como ese.hg id -i
imprime sólo el corto (12 caracteres) Forma de la ID de hash global y desdehg identify
carece--template
afaics no hay manera de extraer sólo la revisión y otra cosa desde la página del manual dice que Imprime un resumen.Esto generará el hash largo, con un plus si hay cambios no confirmados.
fuente
Puede usar --template con el comando padre, lo uso para obtener el hash largo:
fuente
hg parents
está DEPRECADO , aunque quizás ese no haya sido el caso cuando escribió esta respuesta. Si hay una fusión no comprometida, hay dos revisiones principales .Resumiendo las respuestas y sus respuestas, parece que esta es la mejor manera de imprimir el identificador único (no de forma corta) de la versión actual :
fuente
.
(punto) solo muestra el primer padre de dos padres del grupo de trabajo.Consulte los documentos , los párrafos "Conceptos básicos de las plantillas" y los siguientes.
fuente
lid
paralog -l 1 --template '{node}\n'
lograr exactamente esto: imprima la ID de revisión completa.hg --debug id -i
como se dice en otra parte.El comando no DEPRECADO más específico que, debido a la presencia de
--template
, solo puede imprimir información de revisión si se requiere esa concisión (como lo implica la pregunta):hg log -l 1 -b . -T '{rev}:{node|short}\n'
O para una forma larga única de hash:
hg log -l 1 -r . -T '{node}\n'
El
-b .
obranch(.)
(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á documentada enhg help revsets
yhg help revisions
.Tenga en cuenta que si hay una fusión no confirmada , el
.
(punto) solo muestra el primer padre de dos padres del grupo de trabajo.fuente
Como otros han señalado, no lo use
log -l
.Utilícelo
hg log -r .
para obtener información detallada, en lugar de utilizarhg id
cuya salida es limitada y no admite plantillas. También puede crear un pequeño alias comohere = log -r .
y usarhg here
. Si solo quieres usar hashhg log -r . --template '{node}\n'
.fuente
En caso de que se use TortoiseHg, haga clic con el botón derecho en la fila de revisión en el Workbench y seleccione "Copiar hash" (según la documentación ).
fuente