Dans un repo mercurial, je peux lancer hg up {revision}
pour modifier la révision de mon répertoire de travail, mais quelle commande puis-je lancer pour savoir quelle révision je recherche?
Cette commande:
hg parent
En plus des hg parents
, vous pouvez utiliser hg summary
pour obtenir les informations récapitulatives les plus importantes sur votre état actuel. Cela ressemble à ceci:
% hg summary parent: 13051:120eccaaa522 tip encoding: fix typo in variable name branch: default commit: 2 unknown (clean) update: (current) mq: 20 unapplied
et me dit d’un coup d’œil que je suis à la révision 13051, que je suis sur la twig par défaut avec une copie de travail propre (bien qu’il y ait 2 fichiers non suivis). Ceci est la révision de pointe dans mon référentiel, donc une mise à jour ne fera rien. Enfin, j’ai 20 patchs MQ non appliqués.
hg identify
(ou hg id
en abrégé) affichera les identifiants parent (identifiant abrégé de 12 caractères) et un signe +
s’il y a des modifications non validées dans votre copie de travail.
Pour obtenir les hachages complets, vous pouvez utiliser hg identify --debug
place.
Une autre option consiste à activer l’ extension graphlog , puis à exécuter hg glog
. Vous verrez une sortie comme celle-ci (gardez à l’esprit que j’utilise un modèle pour modifier la sortie):
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 | | | |
Le noeud / révision avec le symbole @
est l'endroit où vous vous trouvez.
La commande non DEPRECATED la plus spécifique qui, en raison de la présence de --template
ne peut imprimer que les informations de révision si cette concision est requirejse (comme le suggère la question):
hg log -l 1 -b . -T '{rev}:{node|short}\n'
Ou:
hg log -l 1 -b . -T '{rev}\n'
Ou:
hg log -l 1 -r . -T '{rev}\n'
Ou pour une forme longue unique de hash:
hg log -l 1 -r . -T '{node}\n'
Le -b .
ou branch(.)
(point pour le nom de la twig) signifie la twig du répertoire de travail en cours et -r .
désigne la révision du répertoire de travail en cours, documentée dans les révisions de hg help revsets
et hg help revisions
.
Notez s’il y a une fusion non validée , le .
(point) affiche uniquement le premier parent de deux parents du groupe de travail.
Cela sera également utile,
hg log -v -r `hg id -i`