Why do I need hg update after hg pull while in git I'm doing only git pull
git to pull and use the latest changes to my local repository I’m using
hg, I also use
hg pull but it prints then
- Local only, revision/version/source control
- SCM choice for a new user?
- Migrate from ClearCase to SVN/Mercurial
- Is there a way to remove the history for a single file in Mercurial?
- Git equivalent to hg update
- Contributing patches from Mercurial to Git?
run ‘hg update’ to get a working copy
I do run
hg update but I wonder why is this difference from
3 Solutions collect form web for “Why do I need hg update after hg pull while in git I'm doing only git pull”
The other answers don’t actually answer the question, which is: why don’t Git and Mercurial work the same? Is there a philosophical difference?
pull is the opposite of
push: it syncs the local repo with a remote repo without touching the working copy. So it’s more consistent.
pull is a
fetch plus a
merge, or a
pull plus an
update in Mercurial terms. Usually this is what you want. So it’s more efficient.
The Distributed Version Control University talk has a slide at the 4-minute mark that clearly demonstrates the way Mercurial works. Michael Ernst’s Version control concepts and best practices has a similar diagram (included below):
git pull internally performs
git fetch and
git merge, whereas
hg pull only does what
git fetch does. Just do
hg pull -u instead. See also this command equivalence table.
To get equivalent git functionality enable the fetch Mercurial extension (bundled with Mercurial distributions), see fetch extension. It will execute a
hg pull -u.