| darcs-2.4.4: a distributed, interactive, smart revision control system | Source code | Contents | Index

Darcs.Patch.Real

Description
Conflictor patches
Synopsis

data RealPatch where

Duplicate :: Non RealPatch -> RealPatch
Etacilpud :: Non RealPatch -> RealPatch
Normal :: Prim -> RealPatch
Conflictor :: [Non RealPatch] -> FL Prim -> Non RealPatch -> RealPatch
InvConflictor :: [Non RealPatch] -> FL Prim -> Non RealPatch -> RealPatch

prim2real :: Prim -> RealPatch
is_consistent :: RealPatch -> Maybe Doc
is_forward :: RealPatch -> Maybe Doc
is_duplicate :: RealPatch -> Bool
pullCommon :: Patchy p => FL p -> FL p -> Common p
mergeUnravelled :: [Sealed (FL Prim)] -> Maybe (FlippedSeal RealPatch)

Documentation

data RealPatch where | Source

`Duplicate x`: This patch has no effect since `x` is already present in the repository

    Etacilpud x: invert (Duplicate x)

`Normal prim`: A primitive patch

`Conflictor ix xx x`: `ix` is the set of patches:

- that conflict with `x` and also conflict with another patch in the repository
- that conflict with a patch that conflict with `x`

`xx` is the sequence of patches that conflict *only* with `x`

`x` is the current patch

`ix` and `x` are stored as `Non` objects, which include any necessary context to uniquely define the patch that is referred to.

`InvConflictor ix xx x`: like `invert (Conflictor ix xx x)`

Constructors

Duplicate :: Non RealPatch -> RealPatch |
Etacilpud :: Non RealPatch -> RealPatch |
Normal :: Prim -> RealPatch |
Conflictor :: [Non RealPatch] -> FL Prim -> Non RealPatch -> RealPatch |
InvConflictor :: [Non RealPatch] -> FL Prim -> Non RealPatch -> RealPatch |

Instances

Show RealPatch
Show2 RealPatch
MyEq RealPatch
Invert RealPatch
ReadPatch RealPatch
ShowPatch RealPatch
Commute RealPatch
Apply RealPatch
Patchy RealPatch
Effect RealPatch
Conflict RealPatch
ToFromPrim RealPatch
FromPrim RealPatch
Nonable RealPatch
RepoPatchBase RealPatch

prim2real :: Prim -> RealPatch | Source

is_consistent :: RealPatch -> Maybe Doc | Source

This is used for unit-testing and for internal sanity checks

is_forward :: RealPatch -> Maybe Doc | Source

This is only used for unit testing

is_duplicate :: RealPatch -> Bool | Source

`is_duplicate` `p` is ' `True` if `p` is either a `Duplicate` or `Etacilpud` patch

pullCommon :: Patchy p => FL p -> FL p -> Common p | Source

`pullCommon` `xs ys` returns the set of patches that can be commuted out of both `xs` and `ys` along with the remnants of both lists

mergeUnravelled :: [Sealed (FL Prim)] -> Maybe (FlippedSeal RealPatch) | Source

Produced by Haddock version 2.4.2