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