Changeset Evolution Plan
This page is intended for developers
Proposition for safe rewriting of mercurial history. This will have a close relationship with StatesPlan
1. Core principle
* Store and explicit relation between new and old version of rewritten changeset.
* This relation should *not* be part of the changeset (should not alter the hash).
* People must be able to collaborate on evolving changeset
2. Additional idea
* Save delta in a real changeset.
* This relation should be exchangeable without rewritten changeset.
* Easily allow other extension to manipulate such relation (and to hook on such operation)
3. Situation that should be handled
* Rewriting content of a changeset,
* delete/kill a changeset.
* split a single changeset in multiple one,
* collapse multiple changeset in single one,
* change changeset order,
* adding (eg pulling) a changeset evolution that conflict with another one.
* adding (or adding in general ) new changesets on a one which already evolved (or evolving a changeset that have descendant)