#pragma section-numbers 2 <> = Plan History Rewriting Plan = '''Status: Project''' '''Main proponents: [[Pierre-YvesDavid]] PeterArrenbrecht''' /!\ 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), == Goal == 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. == Roadmap == * 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. == See Also == * This partially depends on WideTransactionPlan * [[Cmd:histedit|The histedit extensions]] * [[Cmd:rebase|The rebase extensions]] * [[ChangesetEvolution|Changeset evolution Ccncept]] ---- CategoryDeveloper CategoryNewFeatures