Size: 1515
Comment: Tagging with CategoryProject
|
Size: 1495
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
<<Include(A:dev)>> |
|
Line 3: | Line 5: |
/!\ This page is intended for developers |
Note:
This page is primarily intended for developers of Mercurial.
Changeset Evolution Plan
Proposition for safe rewriting of mercurial history. This will have a close relationship with StatesPlan
Presentation of the concept: http://hg-lab.logilab.org/doc/mutable-history/html/
Related experimental extension (usable): http://bitbucket.org/marmoute/mutable-history/overview
Older materials
Initial presentation at Copenhagen: http://public.octopoid.net/talk.pdf
First tutorial written by Parren: http://arrenbrecht.ch/mercurial/evolution/
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)