2009-08-21 26 views
30

¿Cómo puedo examinar un conjunto de cambios en mercurial sin buscar su padre? En mercurial, lo que es el equivalente deExaminando un conjunto de cambios en HG

git show HEAD^ 

Git-show da los metadatos de cambios y el diff también.

Respuesta

55

Tu pregunta tiene dos partes. En primer lugar, la forma de obtener los metadatos y de diferencias para un conjunto de cambios de una sola vez:

hg log --patch --rev tip 

se puede acortar el opciones:

hg log -pr tip 

La segunda parte de la pregunta es cómo decir "el conjunto de cambios padre de X "sin buscarlo". Para eso puede usar el parentrevspec extension Martin mencionado.

vez que se habilita la extensión que puede hacer:

hg log -pr tip^ 

Se podría añadir un alias a su archivo ~/.hgrc si no desea volver a entrenar los dedos de comandos de Git:

[alias] 
show = log -pr 

Entonces podría usar:

hg show tip^ 
+2

Sin parentrevspec podría simplemente hacer "-r -2" para obtener el conjunto de cambios antes de la propina, ¿verdad? –

+2

Sí, es cierto. Sin embargo, eso no funciona para algo como 'hg show mytag ^', ¿verdad? –

+2

En general, para este caso, se prefiere 'hg export' (enumera el mensaje de confirmación completo, etc.). – tonfa

12

Creo que quieres hg export cset.

2

También debería echar un vistazo a parentrevspec extension para permitir una sintaxis similar a la de Git para especificar revisiones.

5

El equivalente exacto de "git show HEAD ^" sería:

hg log -pr -2 # -1 (last commit), -2 - one before it, etc. 

o, por ejemplo, si desea buscar en los 3 últimos commits (con diff):

hg log -pr -3: # colon means start 3 commits behind and up to tip inclusive 

Un poco demasiado tarde con la respuesta, pero aún así. :)

ACTUALIZACIÓN: al parecer, ahora HG admite la sintaxis git así:

hg exp tip^^^..tip 

o

hg log -pr tip~4 
+0

Eso es un punto ":", no un punto y coma ";" –

+0

Por malo. Fijo. Gracias por informar – Alex

0

Si lo que desea es ver el contenido y diferencial de una confirmación, utilice este :

hg diff -c <the commit hash or bookmark name> 

Para ver la confirmación que ha marcado cabo (HEAD en GIT), haga lo siguiente:

hg diff -c -1 

Si desea ver el commit antes de que (CABEZA^en GIT), hacer esto:

hg diff -c -2 

simple.

Cuestiones relacionadas