Pas exactement.
hg pull
récupère les révisions de l'autre dépôt et les ajoute aux révisions disponibles localement dans votre clone du dépôt, mais ne met pas à jour votre copie de travail - seulement votre dépôt (qui, pour les systèmes de contrôle de version distribués comme hg/git/etc, n'est pas la même chose qu'une copie de travail).
hg update
met à jour votre copie de travail réelle à la dernière révision de votre dépôt local.
Cela diffère de Subversion car avec svn, il n'existe pas de "dépôt local" - le seul dépôt est celui sur le serveur ; vous n'avez qu'une copie de travail localement. C'est pourquoi update
est une seule commande, contrairement à pull
puis update
de Mercurial.
L'équivalent de svn update
pour Mercurial serait hg pull --update
, ce qui équivaut à faire hg pull
puis hg update
l'une après l'autre.
Un flux de travail de bout en bout pour un système de contrôle de version distribué avec un dépôt "central" ressemble à ceci :
- A fait un
hg commit
sur certains changements.
- A fait un
hg push
pour les pousser vers le dépôt central.
- B fait un
hg pull
pour les récupérer du dépôt central dans son propre clone.
- B fait un
hg update
pour mettre à jour sa copie de travail afin de refléter les changements récupérés dans son clone.
Dans les systèmes sans dépôt central, cela ressemblerait plutôt à ceci :
- A fait un
hg commit
sur certains changements.
- B, qui a cloné le dépôt de A, veut ces changements, et fait donc un
hg pull
directement depuis le dépôt de A.
- B utilise
hg update
pour mettre à jour sa copie de travail avec les changements.
Aussi, l'équivalent de svn revert
est hg revert
. :)