Mercurial goes a bit further by tracking copies, so if you split a file in two, a diff viewer will show there is no added code (but a lot of deletions). https://stackoverflow.com/a/4156146/539465
git mv doesn't actually do anything special to track moves, so it can't figure out anything that's non-trivial.