Re: How to extend a patch theory to fully commute

James Cook <[email protected]> Wed, 1 Jul 2020 16:39:41 +0000
Newsgroups gmane.comp.version-control.darcs.user
Message-ID <CAHpmPOCnkDQBb=omVvx4q+Rt_0dYOy9U39Vi7Evdc2cfNT3RoA@mail.gmail.com>
> A well-known and quite natural way to identify the equivalence class of
> all patches that a given patch P can be commuted to, is to use the so
> called "minimal context". A minimal context C(P) for some patch P is a
> sequence of patches starting at the empty state and preceding P, and
> that is minimal in the sense that no subset of it is a valid context. In
> other words, no patch in C(P) can be commuted past P. Another way to
> look at it is to start with a patch P in /any/ context and then commute
> everything you can past P. It is easy to show that this can always be
> done and that the result is unique i.e. you always get the same /set/ of
> patches for the minimal context.

I think I've found a case where darcs 2 violates that uniqueness
property. In fact, I got darcs to crash after that, so I  filed
http://bugs.darcs.net/issue2647

I added comments interspersed with the shell commands in that bug
explaining where I managed to change the minimal context of a patch.
Is that in itself a bug?

This behaviour is behind the note I added to Assumption 2 about it
possibly being false for Darcs 2. When I originally discovered it, I
thought I just had to live with that, but based on your email, and the
fact that I've now actually crashed Darcs, I guess maybe the behaviour
is unintended.

James