darcs-2.8.4: a distributed, interactive, smart revision control system

Safe Haskell | None

Darcs.Patch.Conflict

# Documentation

class (Effect p, PatchInspect (PrimOf p)) => Conflict p where

Methods

listConflictedFiles :: p x y -> [FilePath]

resolveConflicts :: p x y -> [[Sealed (FL (PrimOf p) y)]]

conflictedEffect :: p x y -> [IsConflictedPrim (PrimOf p)]

Instances

(CommuteNoConflicts p, Conflict p) => Conflict (RL p) |
(CommuteNoConflicts p, Conflict p) => Conflict (FL p) |
PrimPatch prim => Conflict (Patch prim) |
(CommuteNoConflicts p, Conflict p) => Conflict (Named p) |
PrimPatch prim => Conflict (RealPatch prim) |

class CommuteNoConflicts p where

Methods

commuteNoConflicts :: (p :> p) x y -> Maybe ((p :> p) x y)

If `commuteNoConflicts` `x :> y` succeeds, we know that that `x` commutes past `y` without any conflicts. This function is useful for patch types for which `commute` is defined to always succeed; so we need some way to pick out the specific cases where commutation succeeds without any conflicts.

Instances

CommuteNoConflicts p => CommuteNoConflicts (RL p) |
CommuteNoConflicts p => CommuteNoConflicts (FL p) |
PrimPatch prim => CommuteNoConflicts (Patch prim) |
PrimPatch prim => CommuteNoConflicts (RealPatch prim) |

data IsConflictedPrim prim where

Constructors

IsC :: !ConflictState -> !(prim x y) -> IsConflictedPrim prim |

data ConflictState

Constructors

Okay |
Conflicted |
Duplicated |

Instances

Eq ConflictState |
Ord ConflictState |
Read ConflictState |
Show ConflictState |