Differences between revisions 1 and 9 (spanning 8 versions)
Revision 1 as of 2011-09-06 17:07:44
Size: 1138
Comment: Very basic first draft about the evolution concept
Revision 9 as of 2012-10-25 21:34:57
Size: 1495
Editor: mpm
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
Line 6: Line 7:

 * 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/
Line 10: Line 19:
* 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
 * 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
Line 19: Line 26:
* 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)
 * 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)
Line 27: Line 32:
* Rewriting content of a changeset,  * 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)
Line 29: Line 40:
* 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)
CategoryProject

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

Older materials

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)

CategoryProject

ChangesetEvolution (last edited 2022-08-14 21:06:00 by StephenRasku)