I understand the restrictions of rollback and the care required in its use, but I just wondered why there is only one level of rollback.
My guess it\'s a design
The trick is: hg rollback
is not just about resetting some commits, it reset every data and meta-data associated with the repository.
It actually has no equivalent in Git, and is quite a dangerous mechanism.
It can be mis-used as a way to rewrite the history by resetting it, and that can "reset" more than you wanted.
To allow this on more than one level back would be too dangerous.
When it comes only to resetting/rewriting changeset (which are, by design, immutable), extensions like MQ are better suited.