8
votes

Équivalent mercurial à la tête de Git ~ 1

En Git, il est tout à fait pratique d'identifier un commit par rapport au dernier contrainte dans le représentant avec tête ~ 1 .

J'ai recherché et je ne trouve pas d'équivalent pour cela dans Mercurial. Je trouve des numéros de révision mercuriels plutôt ennuyeux.


0 commentaires

3 Réponses :


6
votes

Il y a un extension mercuriale qui ajoute des commandes git comme.
Commande spécifique est hg journal -pr. ^ 1 .

Pour plus d'informations, voir Examiner une modification à HG < / p>

EDIT: Utilisez . ^ 1 , pas Conseil ^ 1 . Comme mentionné ci-dessous, Conseil donne le plus récent engagement dans l'ensemble du repo, ce qui n'est peut-être pas ce que vous voulez. Le . est plus proche du sens de la tête de GIT . (Voir aussi: Spécifiez DOT comme révision dans Mercurial )


1 commentaires

Ces jours-ci, la syntaxe relative REVSET est prise en charge par défaut. Il est également utile de savoir que p1 () donnera au parent du répertoire de travail actuel, tandis que Conseil donnera la dernière commission à l'ensemble du repo (qui peut avoir été sur une branche différente)



10
votes

La fonctionnalité REVSET de Mercurial est extrêmement puissante (et beaucoup moins arcanique que la syntaxe de spécification de révision GIT): voir hg aidez REVESTS (ou en ligne à: Http://www.elenic.com/mercurial/hg.1.html#Specifiant-Revision-sets ).

Voir ici pour une liste de prédicats (je ne sais pas pourquoi ils ne sont pas affichés dans le document en ligne): Http://hg.inevation.org/mercurial/crew/file/e597Ef52A7C2/mercurial/revset.py#l811

Dans votre cas, ce serait: P1 (TIP) .


1 commentaires

Étant donné que la question auteur a une meilleure connaissance de la syntaxe GIT, je pense que ma réponse est plus utile. Néanmoins +1 depuis que je ne savais pas les réviseries dans Mercurial, et maintenant que j'ai vu quelques exemples, je préfère qu'il git la syntaxe.



8
votes

La réponse correcte est . ^ ou ~ 1 .

Conseil pointe vers la dernière révision entrée dans le référentiel, pas la révision actuelle que vous allez. Toutes les réponses qui incluent la pointe en eux sont incorrectes.

La syntaxe REVSET de Mercurial est spécifiée ici plus en détail ici: HTTPS: // www .mercurial-scm.org / Repo / hg / Aide / Revsets

x ^ n : le nième parent de x, n == 0, 1 ou 2. pour n == 0, x; Pour n == 1, le premier parent de chaque changeage de x; Pour n == 2, le deuxième parent de changeage en x.

x ~ n : le nième premier ancêtre de x; "x ~ 0" est x; "x ~ 3" est "x ^^^". Pour n <0, le nième descendant sans ambiguïté de x.

x ^ : équivalent à "x ^ 1", le premier parent de chaque change dans x.


0 commentaires