[PATCH] add support for marking changesets as dead
Martin Geisler
mg at lazybytes.net
Wed Feb 2 03:49:05 CST 2011
Matt Mackall <mpm at selenic.com> writes:
> Ideally, if we're using both concepts together, people will only ever
> regularly abandon changesets that are still in the liquid state. In
> other words 'freezing' should be interpreted as a promise not to later
> 'abandon' a changeset.
>
> A picture might be helpful here:
>
> | |
> frozen 1 liquid 2 abandoned
> | |
>
> (Ancestors are on the left, descendants are on the right)
>
> All open development heads live on boundary 2
> Code that's been rejected lives to the right of it
> Code that's been accepted lives to the left of it
> Everything between 1 and 2 is still being evaluated and tested
> The rightmost place in the spectrum where you'd cut a release is 1
> All past releases would live to the left of boundary 1
> Tags will generally point into the frozen set
> Bookmarks will generally point into the liquid set
>
> Boundary 1 can shift right, shouldn't shift left without a -f. If you
> try to shift it right of 2, 2 is moved right.
>
> Boundary 2 can shift either way, but shouldn't shift left of 1, as
> that would imply abandoning released code. So you'd need to shift 1
> first or at the same time (with -f).
>
> Any of frozen, liquid, or abandoned can be empty, which means that
> boundary 1 and 2 can and often will be the same. For instance, in
> current core Mercurial, all csets are treated as frozen.
>
> But if your model is simply:
>
> |
> keep | abandon
> |
>
> ..it's incomplete.
I like your three-phase model above!
My simple two-phase model looks incomplete when you describe it like
"kept or abandoned", but that's because I considered all the kept
changesets to be liquid. But I can definitely see how a more
fine-grained view is better, so lets go for the three stages.
I would then expect 'hg clone', 'hg pull' and 'hg push' to work by:
1) first transfer the new boundary 2
2) then transfer any changesets left of boundary 2
That should implement the "abandoned changesets stay put" semantics I
like.
--
Martin Geisler
Mercurial links: http://mercurial.ch/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20110202/e84d7296/attachment.pgp>
More information about the Mercurial-devel
mailing list