Internals/Patches

We should put any documentation that go into Haddock should do into Haddock. This just serves to provide a sort of high-level overview tying everything together (perhaps this also belongs as documentation for the Darcs.Patch module?).

Darcs patch containers

Darcs 1 patches look like this:

Named patch
|
+-- Patch (Merger, PP, etc)
    |
    +-- Patch (nesting)
    |
    +-- Prim

Darcs 2 patches look like this:

Named patch
|
+-- RealPatch (Conflictor, Duplicate, etc)
    |
    +-- Non
    |   |
    |   +-- RealPatch (nesting)
    |   |
    |   +-- Prim
    |
    +-- Prim

Patch classes

Defined in some submodule of Darcs.Patch:

Class name
Apply Invert Commute Merge Effect Conflict CommuteNoConflicts PatchInspect ShowPatchBasic ShowContextPatch ShowPatch IsHunk ReadPatch PatchListFormat Nonable Annotate ApplyState FromPrim PrimPatchBase Check Repair RepairToFL RepairInternal RepairInternalFL PatchDebug

Empty subclasses:

Matchable:

RepoPatch:

See also