Problem with histedit and rebase though is that they won't allow you to change published history. This means if I want to push my changes to a backup repository (not the main development repository) I loose the option of rebasing my feature-branch before pushing it to the main repo :(
You have some ways you can work with this in hg using phases. One example is to mark the repo you're publishing to as non-publishing so that hg knows it's safe to edit history pushed to that repo. Another way is to just tell hg that you know better and to use "hg phase --force --draft" whatever commits you want to histedit or rebase.