This page is primarily intended for Mercurial's developers.
Plan History Rewriting Plan
This is a speculative project and does not represent any firm decisions on future behavior.
Internal infrastructure to unify and empower history rewriting operation. With possible user facing UI (for advanced user),
Mercurial have been gaining multiple history rewriting options over the years (rebase, histedit, evolve, etc). We need to unify both internal implementation and user experience. For this purpose we need these command to rely on a unified history rewriting module in Mercurial core and introduce a unique user facing concept handling multi-step operations that rewrite changesets.
This unification should also be the occasion for advance user to have access to more feature:
ability to execute one operation at a time (as hg evolve is currently doing),
- preview of the resulting of the plan (with conflict prediction),
ability to edit the plan.
Current experience for basic user should not be affected by the above change.
- Gather history rewriting function into a core module and get commands to use it,
expose an API to build and submit a plan,
use this plan as the on disk representation for in progress operation,
have a UI for the user to edit a plan (this will eventually replace histedit),
expose UI to execute a plan step by step / have an option for commands to just schedule the plan,
- add some "preview" capability to the plan.
3. See Also
This partially depends on WideTransactionPlan