Darcs.Patch.Real
Description
Conflictor patches
- data RealPatch where
- 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
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
xand 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)
is_consistent :: RealPatch -> Maybe DocSource
This is used for unit-testing and for internal sanity checks
is_forward :: RealPatch -> Maybe DocSource
This is only used for unit testing
is_duplicate :: RealPatch -> BoolSource
is_duplicate p is ' True if p is either a Duplicate or Etacilpud patch
pullCommon :: Patchy p => FL p -> FL p -> Common pSource
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