Может ли кто-нибудь уточнить, какая именно разница между командами update и pull?
Спасибо.
Может ли кто-нибудь уточнить, какая именно разница между командами update и pull?
Спасибо.
hg update: http://www.selenic.com/mercurial/hg.1.html#update
hg pull: http://www.selenic.com/mercurial/hg.1.html#pull
Итак, когда вы делаете hg pull, вы вносите изменения в свой репозиторий, который находится под .hg
. Он не будет отображаться в вашем рабочем каталоге.
После этого, когда вы выполните hg update
, изменения будут внесены в вашу рабочую копию.
Your repo Remote Repo
\ \
| hg pull |
|-.hg <-------------------------------- |-.hg
| | --------------------------------> |
| hg update hg push |
| | |
|- working folder |- working folder
Это очень обычная путаница, когда вы поступаете из подрывных систем, таких как системы контроля версий.
В подрывной программе: обновление svn приведет к изменениям с центрального сервера репо на вашу рабочую копию.
Но в DVCS у вас есть как локальный репозиторий, так и рабочая копия. Таким образом, обновление делает то же самое, но переносит изменения с вашего локального репо на локальную рабочую копию.
Mercurial - это распределенная система контроля версий, поэтому у вас есть вся история репо, а также ваша версия кода (так называемая "рабочая копия" ).
pull
приводит к удаленным изменениям в вашем локальном репо.
update
изменяет вашу рабочую копию в соответствии с последней версией вашего локального репо.
Итак, если вы клонируете удаленную ветвь и продолжаете обновление, ваш код не изменится, потому что вы никогда не загружаете удаленный код. Если вы продолжаете работать, тогда ваш код не изменится, потому что вы никогда не используете , используя удаленный код (применяя его к своей рабочей версии кода).
Команда pull извлекает изменения из родительского репозитория, но фактически не вносит никаких изменений в файлы в репозитории.
Команда обновления используется для фактического обновления файлов в репозитории.