Doesn't handle it offline, the way git does, but you can of course do all your work and committing to a branch and do the final merge (with history, I believe) to trunk just as you would in cvs (plus improved directory handling).
Or was the thing you wanted that the history should reflect the path of the file through all your changes rather than on a different path, as svn would have it?