Linus on git pull/rebase - when to use rebase and when to use pull and when to make merge commits. Similarly applies to Mercurial, where the problems are similar. Not quite as much for darcs, which offers small advantages here through patch reordering.