The shelve extension provides the shelve command to let you choose which parts of the changes in a working directory you'd like to set aside temporarily, at the granularity of patch hunks. You can later restore the shelved patch hunks using the unshelve command.
The shelve extension has been adapted from Mercurial's RecordExtension.
See hg shelve --help for the complete list of commands.
For more information please visit the hgshelve website.