[darcs-devel] darcs patch: (add a + mv a b = add b) and (mv a b + remove b = remo...

David Roundy droundy at darcs.net
Sun Jan 14 08:40:14 PST 2007


On Sat, Jan 13, 2007 at 11:56:29PM +0100, Eric Y. Kow wrote:
> > > Mon Jan  8 14:09:33 BRST 2007  malebria at riseup.net
> > >   * (add a + mv a b = add b) and (mv a b + remove b = remove a)
> 
> > I think this is probably fine, but it's a little bit scary.
> 
> A nervous David and an ignorant Eric don't make me very keen to accept
> this patch just yet, at least not until we've had some more time to
> think about it (ahem... namely from the people who understand this stuff
> well)
> 
> > The reason is that I this change does affect the semantics of a patch.
> > It's probably fine, since I think coalesce is only used on pending
> > changes, but I'd like to see a bit of a review of where coalesce is
> > used, before this patch is accepted.
> 
> coalesce seems to be used all over the PatchCommute module.  I can trace
> a path up from it to commute_split, eventually up to the commute
> function.
> 
> Waiting for your green/red light, David.

I'd say green.  commute_split should never be used, as we no longer
generate split patches, so far as I recall.  It could be used in older
repositories, though.  And there once was a time when darcs would generate
patches that would be affected by this change, but there were serious
semantic issues with those patches (they disobeyed certain commute
properties... predating our current understanding).  I'd be very surprised
if there are any split patches living in the wild today, and they really
ought to be fossilized if they do exist.  I wouldn't let the split patches
bother us, although it'd be a good idea to make moves towards deprecating
them at some point soon, so we'd be able to find out whether we can
actually remove them a few releases down the road.

Coalesce is also used in the merger code, but only for merger_equivalent.
As far as I can see, it's not used, however, for any of the merger
commutation, so I believe this is okay.  I'd prefer if you (or someone
else) could double-check this, to be sure that the commute or merge of a
merger is not affected by coalesce.  If I can get confirmation on that,
I'll give the green light for this change.  Perhaps the easiest way is to
chop out the code for coalese from this file, and see if we can still
compile commute (except for commute_split, which I believe is okay).
-- 
David Roundy
http://www.darcs.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.osuosl.org/pipermail/darcs-devel/attachments/20070114/a5140514/attachment.pgp


More information about the darcs-devel mailing list