Не совсем.
hg pull
получает ревизии из другого репозитория и добавляет их к локально доступным ревизиям в вашем клоне репозитория, но не обновляет вашу рабочую копию - только ваше репозиторий (что для DCVS вроде hg / git / etc не то же самое, что рабочая копия).
hg update
обновляет вашу фактическую рабочую копию до последней версии в вашем локальном хранилище.
Это отличается от Subversion, потому что в svn нет такой вещи, как ваш "локальный репозиторий" - единственный репозиторий находится на сервере; у вас есть только рабочая копия локально. Следовательно, почему update
является единственной командой, в отличие от pull
Mercurial, а затем update
.
Эквивалент svn update
для Mercurial будет hg pull --update
, что эквивалентно hg pull
и затем hg update
один за другим.
Сквозной рабочий процесс для DCVS с «центральным» репо выглядит примерно так:
- A делает
hg commit
на некоторые изменения.
- A делает
hg push
, чтобы протолкнуть их в центральное хранилище.
- B делает
hg pull
, чтобы вытащить их из центрального хранилища в их собственный клон.
- B делает
hg update
, чтобы обновить свою рабочую копию, чтобы отразить изменения, внесенные в их клон.
В системах без центрального репо это выглядело бы примерно так:
- A делает
hg commit
на некоторые изменения.
- B, который клонировал репо А, хочет эти изменения и, таким образом, делает
hg pull
непосредственно из репо А.
- B использует
hg update
для обновления своей рабочей копии до изменений.
Также эквивалент svn revert
равен hg revert
. :)