GIT encourages rebasing, which leads to rebasing of your public and other people's
code. This is bad.
Mercurial, which hashes a changeset's place in history as well as it's
content, discourages rebasing. Rebasing happens in private with mq patch queues.
Public trees are merged. This is good.
Either style is possible with both tools. The difference is the default emphasis.
Linus Torvalds on rebasing:
Matt Mackall on synchronizing (pull + merge, don't push, don't rebase):
Thursday, July 31, 2008
hg vs git, pull+merge vs rebase