Does hg, svn or others have an option like git stash?
If you don't want to use shelves, you can do it the following way.
hg diff > mylocalchanges.txt
hg revert -a
# Do your merge here, once you are done, import back your local mods
hg import --no-commit mylocalchanges.txt
The general name for that feature is:
Shelving: the ability to actually upload intermediate revisions to the server without really checking them in.
In a CVCS (Centralized VCS), you actually need to upload those intermediate data to a central server.
But in a DVCS (Distributed VCS), you just need to store them in a the local repository.
There is:
You can find all the other SCM shelving commands in this SCM comparison table on Wikipedia.
Jazz Source Control, integrated in IBM Rational Team Concert supports this functionality. It is called "Suspend".
From the Jazz.net site: "Jazz allows you to temporarily remove a change set from your workspace by suspending it. At some point in the future, you can resume the change set and continue working on it."
Jazz Source Control FAQ