How do each of these VCS handle renames?
I have found a lot of contradicting information stating that git tracks LOC (lines of code) instead of files, renames would therefore have no meaning for it.
hg mv, or use
hg addremove --similarityfor auto-discovery. There has been some talk about adding heuristics during merge too.