Differences between revisions 1 and 2
Revision 1 as of 2011-09-06 17:07:44
Size: 1138
Comment: Very basic first draft about the evolution concept
Revision 2 as of 2011-12-20 18:49:38
Size: 1131
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
* 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 17:
* 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 23:
* 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)
 * 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)

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)

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