2010-12-02 15 views

Respuesta

53

Este comando:

hg parent 
+2

Sí, tienes razón! Donde estaba. – pyfunc

+0

@pyfunc: he perdido un minuto con captchas terribles, de lo contrario podría ser el primero :-) – zerkms

+0

Sin problemas. La mejor parte es que estaba haciendo algo en mi repo mercurial y confundí las dos tareas. :) – pyfunc

3

Otra opción es permitir que el graphlog extension, a continuación, ejecutar hg glog. Usted verá una salida como ésta (tenga en cuenta que utilizo una plantilla para cambiar la salida):

o changeset: 200:c8c281cf0a6d 
|\ branch:  craig-aspinall 
| | tag:   tip 
| | parent:  199:1a692f3b9134 
| | parent:  187:2d0e0ed9d31c 
| | user:  Craig Aspinall 
| | date:  Tue Nov 23 21:36:30 2010 +1000 
| | summary:  Merged latest changes 
| | 
| o changeset: 199:1a692f3b9134 
| | branch:  craig-aspinall 
| | parent:  123:1dc90c9b7ede 
| | user:  Craig Aspinall 
| | date:  Tue Nov 23 21:35:22 2010 +1000 
| | summary:  Final solutions to L04 
| | 
| | @ changeset: 198:78b488c2607d  <==== This is where I am currently. 
| | |\ branch:  OJ 
| | | | parent:  119:70ec3d9e4d3a 
| | | | parent:  197:44bac809d37d 
| | | | user:  OJ Reeves 
| | | | date:  Tue Nov 23 20:19:07 2010 +1000 
| | | | summary:  Merged with the mainline 
| | | | 
| | | o changeset: 197:44bac809d37d 
| | | | user:  Tony Morris 
| | | | date:  Tue Nov 23 18:40:03 2010 +1000 
| | | | summary:  Started parallel anagrams 
| | | | 
| | | o changeset: 196:92241b51970b 
| | | | user:  Tony Morris 
| | | | date:  Tue Nov 23 17:52:32 2010 +1000 
| | | | summary:  Started parallel anagrams 
| | | | 

El nodo/revisión con el símbolo @ es donde se encuentra.

10

hg identify (o hg id para abreviar) imprimirá el (abreviado identificador de 12 caracteres de) los hashes de los padres, y una + si hay alguna modificación no comprometidos en su copia de trabajo.

Para obtener los valores hash completos, puede usar hg identify --debug en su lugar.

+0

Al igual que una nota, de forma predeterminada, 'hg parent' muestra más información que' hg id'. – gbmhunter

+0

Pero no es la respuesta más específica a la pregunta, porque afaik 'hg id -i' solo imprime la forma corta (12 caracteres) de la identificación hash global y como' hg identify' carece de '--template' afaics hay no hay forma de extraer solo la revisión y nada más ya que la [página del manual dice] (https://www.selenic.com/mercurial/hg.1.html#identify) imprime un resumen. Además, ¿no necesita 'hg id -n' y/o' hg id -i'? –

+1

@ShelbyMooreIII 12 caracteres hexadecimales son 6 bytes, o 48 bits, por lo que hay 2^48 posibles identificadores cortos. De acuerdo con la paradoja del cumpleaños, aproximadamente 1.2 * sqrt (2^48) = se necesitan aproximadamente 2 millones de confirmaciones para obtener una probabilidad del 50% de una colisión. El identificador corto casi siempre estará bien. –

15

Además de hg parents, puede usar hg summary para obtener la información de resumen más importante sobre su estado actual. Se ve así:

% hg summary 
parent: 13051:120eccaaa522 tip 
encoding: fix typo in variable name 
branch: default 
commit: 2 unknown (clean) 
update: (current) 
mq:  20 unapplied 

y me dice que a simple vista que estoy en la revisión 13051, que estoy en la rama por defecto con una copia de trabajo limpia (aunque hay 2 archivos sin seguimiento). Esta es la revisión de la sugerencia en mi repositorio, por lo que una actualización no hará nada. Finalmente, tengo 20 parches MQ no aplicados.

+0

20 parches sin aplicar ?! Hora de qqueue? –

+0

Nah, pierdo la descripción general con qqueue. En su lugar, solo agrupo los parches en pequeños lotes: 4 parches para la característica X, 5 parches para la característica Y, etc. Si quiero trabajar en la característica X, muevo los parches relevantes al frente en la cola usando el visor de registro TortoiseHg. –

+0

Pero no es la respuesta más específica a la pregunta, porque como 'hg summary' carece de' --template' no hay forma de extraer solo la revisión y nada más. –

1

El comando más específica no DEPRECATED que, debido a la presencia de --template puede imprimir sólo la información de revisión si se requiere que la concisión (como se deduce de la pregunta):

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

O:

hg log -l 1 -b . -T '{rev}\n'

O:

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

O de forma larga única de picadillo:

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

El -b . o branch(.) (punto de nombre de la sucursal) means the current working directory branch y -r . significa que la actual revisión directorio de trabajo, que es documented en hg help revsets y hg help revisions.

Tenga en cuenta que si hay un uncommitted merge, . (punto) solo muestra el first parent de dos padres del grupo de trabajo.

1

Esto también útiles,

hg log -v -r `hg id -i` 
Cuestiones relacionadas