MQ patch for files with temporary changes, commits for permanent changes (user must know, which files are in every category)
On commit, user can exclude some modified files from changeset and use later these files for refreshing (applied) patch.
Forgetting these changes is just unapply patch