On Tue, Apr 08, 2008 at 01:45:30PM +1000, Anthony Towns wrote: > add-bar: > Previous-Changeset: add-foo > > Inserting at the end is trivial (add a new signed changeset, and update > LAST-CHANGESET), removing from the middle is easy-ish (replace the old > changeset with a new, empty one), and changing stuff in the middle is > possible but annoying, which seems entirely reasonable.
OTOH, in order to merge two trees, you'd need to go from:
d---e
/
a---b---c
and
a---b---c
\
x---y
to
d---e
/ \
a---b---c \
\
x---y
(requiring resigning x) or
d---e
/ \
a---b---c M
\ /
x---y
with c having two descendents, and M having two parents; and possibly
being able to have M as a no-op otherwise, so you can do merges without
having to have an additional changeset. You'd also have to pull out a
distinct ordering from that (presumably based on the order of the children
in M -- an ordered, depth-first descent would probably be all it'd take).
That assumes merging is actually something we care about, which it might
not be.
Cheers,
aj
signature.asc
Description: Digital signature

