hg update : http://www.selenic.com/mercurial/hg.1.html#update
- Update the repository’s working directory (the “working copy”) to the specified revision of the repository
hg pull : http://www.selenic.com/mercurial/hg.1.html#pull
- Allows you to bring changes from a remote repository
So when you do an hg pull, you bring changes to your repository which is under .hg. It will not reflect in your working directory.
After that, when you do a hg update, the changes are brought to your working copy.
Your repo Remote Repo
\ \
| hg pull |
|-.hg <-------------------------------- |-.hg
| | --------------------------------> |
| hg update hg push |
| | |
|- working folder |- working folder
This is very usual confusion when coming from subversion like version control systems.
In subversion : svn update bring the changes from central repo server to your working copy
But in DVCSs , you have both a local repository and working copy. So update does exactly the same but pulls the changes from your local repo to local working copy.