Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2011-09-06 17:07:44
Size: 1138
Comment: Very basic first draft about the evolution concept
Revision 10 as of 2012-10-25 21:35:17
Size: 1517
Editor: mpm
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
<<Include(A:dev)>>
<<Include(A:style)>>
Line 3: Line 6:
/!\ This page is intended for developers
Line 6: Line 8:

 * 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 20:
* 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 27:
* 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 33:
* 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 41:
* 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.

{i} This page does not meet our wiki style guidelines. Please help improve this page by cleaning up its formatting.

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)