Hg names the branches and keeps the name. The other day I was looking at a sequence of commits trying to figure out where they came from and knowing the branch would have helped.
mg always kept history though. Git has always encougaged squashes and rebase to keep a linear history so that information was lost.