PatchTheory
Everything you ever wanted to know about patch theory and conflictors:
Key resources
- Camp is a project to develop and prove correct a darcs-like patch theory, which will hopefully form the basis for darcs 3. The theory is similar to that of darcs 2, so reading the paper on the camp site will also give an insight into how the current darcs patch theory works - Ian Lynagh 2008-09-24
- PatchTheoryPeople - who (wants to) understand patch theory?
- #darcs-theory on irc.freenode.net
Patch theory projects
Modeling patch theory (post darcs 2)
Ian and Ganesh want a minimal 'toy' implementation of the core patch theory stuff (which could eventually be plugged into darcs 3). The point is to prove things about patch theory. One it would make everybody feel a lot better, two we could then do things like simplify it whilst proving that things still work.
Conflictors work up to darcs 2
- See David's FOSDEM 2006 slides
- And from there, take a look at:
- An explanation of mergers (and what conflictors were meant to be)
- Why nested conflicts are bad
- The darcs-conflicts (archived on MARC)
- Permutivity - David's notes on the property of patches
- An attempt at some formalisation, and a nearly finished proof of n-way permutivity
- GaneshPatchAlgebra (very old/obsolete)
Ancient stuff (darcs 1 and prior)
As I understand David's mail above, the work went from merger 0.0 to 0.1 and 0.9. Then David gave up and went back merger 0.0. Merger 0.0 is what most people using darcs-1 repositories have.
- merger 0.0 - the original safest approach to merging; just cancel out both sides. This became the darcs-1 standard by darcs-1.?.?
- merger 0.1 - a very early attempt at mergers: TODO: find the last version that supported these
- merger 0.9 - a more advanced attempt at mergers: TODO: find the last version that supported these.
See also
- JasonDagit's talk about how GADTs are used in darcs for implementing PatchTheory:
- "Type Correct Changes: A Safe Approach to Version Control Implementation or grab the .pdf slides
- Master's thesis and presentation
- DavidRoundy's talk about PatchTheory (2008-10-05): "Haskel, static typing, type witnesses and darcs" (.pdf slides)
- Understanding darcs- Wikibook attempt to explain darcs and patch theory very slowly and with lots of diagrams. Note: very incomplete.
