Differences between revisions 4 and 5
Revision 4 as of 2011-04-20 09:14:52
Size: 1307
Comment:
Revision 5 as of 2011-04-20 17:30:35
Size: 2089
Comment: some basic description of the state of the topic or stopic itself (to be continued)
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
 * Garbage collection of "abandoned" changeset,
 * Semantical Change tracking (as mq do with patches) and versionning (as versionned mq),
 * History edition extension compatibility,
 * Sharing volatile part of the history.
=== Garbage collection of "abandoned" changeset ===
Line 27: Line 24:
For now, all extensions that alter history destroy old changeset by rewriting part of revlog. Most of them save a backout of the stripped part of the revlog in a bundle located at ".hg/strip-backup/"

=== Semantical Change tracking (as mq do with patches) and versionning (as versionned mq) ===

mq currently allow to keep a single identifier (patch name) for the multiple changeset that qrefresh create.

Versionned mq allow to restore state of the liquid part you changeset and share it with other people.

=== History edition extension compatibility ===

mq (any other extension) keep information about changeset outside the revlog. The force other history editing extension to either: Implement mq compatibility itself, Be incompatible with mq handled changeset, corrupt mq repo.

=== Sharing volatile part of the history ===

Sharing the liquid part of the history for review, preview is a complicated issue but an interesting problem.

Liquid-HG

/!\ This page is intended for developers. <!> This is a proposed feature, last minor updated April 2011.

A system for safely allowing mutable history.

Base concept

The first objective of Liquid-HG is to have a clear distinctions between the part of the history can be altered and the one which can't. (To keep it simple: the private part may be edited while the public can't). This imply two points

  • Deny edition of non-liquid (frozen) changeset,
  • Simple and logical transition from liquid to frozen state (freezing). This transition should be transparent for the user.

Other concepts

Garbage collection of "abandoned" changeset

For now, all extensions that alter history destroy old changeset by rewriting part of revlog. Most of them save a backout of the stripped part of the revlog in a bundle located at ".hg/strip-backup/"

Semantical Change tracking (as mq do with patches) and versionning (as versionned mq)

mq currently allow to keep a single identifier (patch name) for the multiple changeset that qrefresh create.

Versionned mq allow to restore state of the liquid part you changeset and share it with other people.

History edition extension compatibility

mq (any other extension) keep information about changeset outside the revlog. The force other history editing extension to either: Implement mq compatibility itself, Be incompatible with mq handled changeset, corrupt mq repo.

Sharing volatile part of the history

Sharing the liquid part of the history for review, preview is a complicated issue but an interesting problem.

Ideas and discussion


CategoryNewFeatures

LiquidHG (last edited 2012-10-25 20:57:10 by mpm)