2009-08-21 8 views
30

Comment puis-je examiner un changeset dans mercurial sans regarder son parent? Dans mercurial, ce qui est l'équivalent deExaminer un changeset dans HG

git show HEAD^ 

Git-show donne les métadonnées et la diff changeset ainsi.

Répondre

55

Votre question comporte deux parties. Tout d'abord, comment obtenir les métadonnées et diff pour un changeset à la fois:

hg log --patch --rev tip 

Vous pouvez raccourcir les options:

hg log -pr tip 

La deuxième partie de la question est de savoir comment dire « le changeset parent de X "sans le regarder. Pour cela, vous pouvez utiliser le parentrevspec extension Martin mentionné.

Une fois que vous activez l'extension que vous pouvez faire:

hg log -pr tip^ 

Vous pouvez ajouter un alias dans votre fichier ~/.hgrc si vous ne voulez pas recycler vos doigts de la commande git:

[alias] 
show = log -pr 

Ensuite, vous pouvez utiliser:

hg show tip^ 
+2

Sans parentrevspec il pourrait juste faire "-r -2" pour obtenir le changeset avant le pourboire, non? –

+2

Oui, c'est vrai. Cela ne fonctionne pas pour quelque chose comme 'hg show mytag ^' cependant, non? –

+2

En général, dans ce cas, 'hg export' est préféré (il liste le message de validation complet, etc.). – tonfa

12

Je pense que vous voulez hg export cset.

2

Vous devriez également jeter un oeil à parentrevspec extension pour activer une syntaxe plus semblable à Git pour spécifier les révisions.

5

L'équivalent exact de "git show HEAD ^" serait:

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

ou par exemple si vous voulez regarder les 3 derniers commits (avec diff):

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

Un peu à la fin de la réponse, mais quand même. :)

MISE À JOUR: apparemment maintenant HG supporte la syntaxe git ainsi:

hg exp tip^^^..tip 

ou

hg log -pr tip~4 
+0

C'est un deux-points ":", pas un point-virgule ";" –

+0

Par mauvais. Fixé. Merci d'avoir signalé – Alex

0

Si vous voulez juste voir le contenu et le différentiel d'un engagement, utiliser :

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

Pour voir le commit que vous avez vérifié out (HEAD git), faites ceci:

hg diff -c -1 

Si vous voulez voir la commettras avant qu'il (HEAD^dans git), faites ceci:

hg diff -c -2 

simple.

Questions connexes