Safe Haskell | None |
---|---|
Language | Haskell2010 |
Darcs.Patch.RepoPatch
Synopsis
- type RepoPatch (p :: Type -> Type -> Type) = (AnnotateRP p, Apply p, ApplyState p ~ ApplyState (PrimOf p), Check p, Commute p, Conflict p, Effect p, Eq2 p, FromPrim p, IsHunk p, IsHunk (PrimOf p), Merge p, PatchInspect p, PatchListFormat p, PrimPatchBase p, ReadPatch p, RepairToFL p, ShowContextPatch p, ShowPatch p, Summary p, ToPrim p, Unwind p)
- type AnnotateRP (p :: Type -> Type -> Type) = (Annotate (PrimOf p), Invert (PrimOf p), Effect p)
- class Apply (p :: Type -> Type -> Type) where
- type ApplyState (p :: Type -> Type -> Type) :: (Type -> Type) -> Type
- apply :: ApplyMonad (ApplyState p) m => p wX wY -> m ()
- unapply :: ApplyMonad (ApplyState p) m => p wX wY -> m ()
- class Check (p :: Type -> Type -> Type) where
- isInconsistent :: p wX wY -> Maybe Doc
- class Commute (p :: Type -> Type -> Type) where
- class Conflict (p :: Type -> Type -> Type) where
- isConflicted :: p wX wY -> Bool
- resolveConflicts :: RL p wO wX -> RL p wX wY -> [ConflictDetails (PrimOf p) wY]
- class Effect (p :: Type -> Type -> Type) where
- class Eq2 (p :: Type -> Type -> Type) where
- class FromPrim (p :: Type -> Type -> Type) where
- class IsHunk (p :: Type -> Type -> Type) where
- isHunk :: p wX wY -> Maybe (FileHunk (ObjectIdOfPatch p) wX wY)
- class CleanMerge p => Merge (p :: Type -> Type -> Type) where
- class PatchInspect (p :: Type -> Type -> Type) where
- listTouchedFiles :: p wX wY -> [AnchoredPath]
- hunkMatches :: (ByteString -> Bool) -> p wX wY -> Bool
- class PatchListFormat (p :: Type -> Type -> Type) where
- class PrimPatch (PrimOf p) => PrimPatchBase (p :: Type -> Type -> Type) where
- type PrimOf (p :: Type -> Type -> Type) :: Type -> Type -> Type
- class ReadPatch (p :: Type -> Type -> Type) where
- readPatch' :: Parser (Sealed (p wX))
- class Apply p => RepairToFL (p :: Type -> Type -> Type) where
- applyAndTryToFixFL :: ApplyMonad (ApplyState p) m => p wX wY -> m (Maybe (String, FL p wX wY))
- class ShowPatchBasic p => ShowContextPatch (p :: Type -> Type -> Type) where
- showPatchWithContextAndApply :: ApplyMonad (ApplyState p) m => ShowPatchFor -> p wX wY -> m Doc
- class ShowPatchBasic p => ShowPatch (p :: Type -> Type -> Type) where
- class ShowPatchBasic (p :: Type -> Type -> Type) where
- showPatch :: ShowPatchFor -> p wX wY -> Doc
- class Summary (p :: Type -> Type -> Type) where
- conflictedEffect :: p wX wY -> [IsConflictedPrim (PrimOf p)]
- class ToPrim (p :: Type -> Type -> Type) where
- class Unwind (p :: Type -> Type -> Type) where
- fullUnwind :: p wX wY -> Unwound (PrimOf p) wX wY
Documentation
type RepoPatch (p :: Type -> Type -> Type) = (AnnotateRP p, Apply p, ApplyState p ~ ApplyState (PrimOf p), Check p, Commute p, Conflict p, Effect p, Eq2 p, FromPrim p, IsHunk p, IsHunk (PrimOf p), Merge p, PatchInspect p, PatchListFormat p, PrimPatchBase p, ReadPatch p, RepairToFL p, ShowContextPatch p, ShowPatch p, Summary p, ToPrim p, Unwind p) Source #
type AnnotateRP (p :: Type -> Type -> Type) = (Annotate (PrimOf p), Invert (PrimOf p), Effect p) Source #
This constraint expresses what is needed for a repo patch to support the high-level interface to annotation (currently annotateFile and annotateDirectory)
class Apply (p :: Type -> Type -> Type) where Source #
Minimal complete definition
Associated Types
type ApplyState (p :: Type -> Type -> Type) :: (Type -> Type) -> Type Source #
Methods
apply :: ApplyMonad (ApplyState p) m => p wX wY -> m () Source #
unapply :: ApplyMonad (ApplyState p) m => p wX wY -> m () Source #
default unapply :: (ApplyMonad (ApplyState p) m, Invert p) => p wX wY -> m () Source #
Instances
class Check (p :: Type -> Type -> Type) where Source #
Minimal complete definition
Nothing
Methods
isInconsistent :: p wX wY -> Maybe Doc Source #
Instances
Check p => Check (Named p) Source # | |
Defined in Darcs.Patch.Named | |
Check (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Core Methods isInconsistent :: RepoPatchV1 prim wX wY -> Maybe Doc Source # | |
PrimPatch prim => Check (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods isInconsistent :: RepoPatchV2 prim wX wY -> Maybe Doc Source # | |
Check p => Check (FL p) Source # | |
Defined in Darcs.Patch.Repair | |
Check p => Check (RL p) Source # | |
Defined in Darcs.Patch.Repair | |
PrimPatch prim => Check (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods isInconsistent :: RepoPatchV3 name prim wX wY -> Maybe Doc Source # |
class Commute (p :: Type -> Type -> Type) where Source #
Class of patches that that can be commuted.
Instances should obey the following laws:
- commute-symmetry
commute (p:>q) == Just (q':>p') <=> commute (q':>p') == Just (p':>q)
- invert-commute
If patches are invertible, then
commute (p:>q) == Just (q':>p') <=> commute (invert q:>invert p) == Just (invert p':>invert q')
The more general law
- square-commute
commute (p:>q) == Just (q':>p') => commute (invert p:>q') == Just (q:>invert p')
is valid in general only provided we know (a priori) that
succeeds, in other words, that p and q are not in conflict with each
other. See Darcs.Patch.CommuteNoConflicts for an extended discussion.commute
(invert
p:>
q')
Instances
Commute Prim Source # | |
Commute Prim Source # | |
Commute RebaseName Source # | |
Defined in Darcs.Patch.Rebase.Name Methods commute :: (RebaseName :> RebaseName) wX wY -> Maybe ((RebaseName :> RebaseName) wX wY) Source # | |
Commute Prim Source # | |
Commute Prim Source # | |
Commute p => Commute (LabelledPatch p) Source # | |
Defined in Darcs.Patch.Choices Methods commute :: (LabelledPatch p :> LabelledPatch p) wX wY -> Maybe ((LabelledPatch p :> LabelledPatch p) wX wY) Source # | |
Commute p => Commute (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods commute :: (Invertible p :> Invertible p) wX wY -> Maybe ((Invertible p :> Invertible p) wX wY) Source # | |
Commute p => Commute (Named p) Source # | |
(PatchId p ~ PatchInfo, Commute p) => Commute (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods commute :: (PatchInfoAndG p :> PatchInfoAndG p) wX wY -> Maybe ((PatchInfoAndG p :> PatchInfoAndG p) wX wY) Source # | |
Commute prim => Commute (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods commute :: (RebaseChange prim :> RebaseChange prim) wX wY -> Maybe ((RebaseChange prim :> RebaseChange prim) wX wY) Source # | |
Commute prim => Commute (RebaseFixup prim) Source # | |
Defined in Darcs.Patch.Rebase.Fixup Methods commute :: (RebaseFixup prim :> RebaseFixup prim) wX wY -> Maybe ((RebaseFixup prim :> RebaseFixup prim) wX wY) Source # | |
PrimPatch prim => Commute (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods commute :: (RepoPatchV1 prim :> RepoPatchV1 prim) wX wY -> Maybe ((RepoPatchV1 prim :> RepoPatchV1 prim) wX wY) Source # | |
PrimPatch prim => Commute (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods commute :: (RepoPatchV2 prim :> RepoPatchV2 prim) wX wY -> Maybe ((RepoPatchV2 prim :> RepoPatchV2 prim) wX wY) Source # | |
Commute p => Commute (FL p) Source # | |
Commute p => Commute (RL p) Source # | |
(SignedId name, Commute p) => Commute (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods commute :: (PrimWithName name p :> PrimWithName name p) wX wY -> Maybe ((PrimWithName name p :> PrimWithName name p) wX wY) Source # | |
(SignedId name, StorableId name, PrimPatch prim) => Commute (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods commute :: (RepoPatchV3 name prim :> RepoPatchV3 name prim) wX wY -> Maybe ((RepoPatchV3 name prim :> RepoPatchV3 name prim) wX wY) Source # |
class Conflict (p :: Type -> Type -> Type) where Source #
Methods
isConflicted :: p wX wY -> Bool Source #
resolveConflicts :: RL p wO wX -> RL p wX wY -> [ConflictDetails (PrimOf p) wY] Source #
The first parameter is a context containing all patches
preceding the ones for which we want to calculate the conflict
resolution, which is the second parameter.
Each element of the result list represents the resolution
of one maximal set of transitively conflicting alternatives,
in other words, a connected subset of the conflict graph.
But the elements themselves must not conflict with each other,
guaranteeing that they can be cleanly merged into a single FL
of prims.
Instances
(Commute p, Conflict p, Summary p, PrimPatchBase p, PatchListFormat p, ShowPatch p) => Conflict (Named p) Source # | This instance takes care of handling the interaction between conflict resolution and explicit dependencies. A conflict involves a set of two or more patches and the general rule is that the conflict is considered resolved if there is another (later) patch that (transitively) depends on each of the (mutually) conflicting patches. This principle extends to explicit dependencies between In general a Named A [] a Named B [] (b1;b2) Named C [] c Named D [A,B] _ where, at the RepoPatch level, When we decide that a set of conflicting Named patches is resolved, we move the RepoPatches contained in them to the context of the resolution. For all other named patches, we must commute as much of their contents as possible past the ones marked as resolved, using commutation at the RepoPatch level (i.e. ignoring explicit dependencies). |
Defined in Darcs.Patch.Named Methods isConflicted :: Named p wX wY -> Bool Source # resolveConflicts :: RL (Named p) wO wX -> RL (Named p) wX wY -> [ConflictDetails (PrimOf (Named p)) wY] Source # | |
(Commute p, Conflict p, Summary p, PrimPatchBase p, PatchListFormat p, ShowPatch p) => Conflict (PatchInfoAnd p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods isConflicted :: PatchInfoAnd p wX wY -> Bool Source # resolveConflicts :: RL (PatchInfoAnd p) wO wX -> RL (PatchInfoAnd p) wX wY -> [ConflictDetails (PrimOf (PatchInfoAnd p)) wY] Source # | |
PrimPatch prim => Conflict (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods isConflicted :: RepoPatchV1 prim wX wY -> Bool Source # resolveConflicts :: RL (RepoPatchV1 prim) wO wX -> RL (RepoPatchV1 prim) wX wY -> [ConflictDetails (PrimOf (RepoPatchV1 prim)) wY] Source # | |
PrimPatch prim => Conflict (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods isConflicted :: RepoPatchV2 prim wX wY -> Bool Source # resolveConflicts :: RL (RepoPatchV2 prim) wO wX -> RL (RepoPatchV2 prim) wX wY -> [ConflictDetails (PrimOf (RepoPatchV2 prim)) wY] Source # | |
(SignedId name, StorableId name, PrimPatch prim) => Conflict (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Resolution Methods isConflicted :: RepoPatchV3 name prim wX wY -> Bool Source # resolveConflicts :: RL (RepoPatchV3 name prim) wO wX -> RL (RepoPatchV3 name prim) wX wY -> [ConflictDetails (PrimOf (RepoPatchV3 name prim)) wY] Source # |
class Effect (p :: Type -> Type -> Type) where Source #
Patches whose concrete effect can be expressed as a list of primitive patches.
A minimal definition would be either of effect
or effectRL
.
Instances
Effect p => Effect (Named p) Source # | |
Effect p => Effect (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods effect :: PatchInfoAndG p wX wY -> FL (PrimOf (PatchInfoAndG p)) wX wY Source # | |
Effect p => Effect (WithDroppedDeps p) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods effect :: WithDroppedDeps p wX wY -> FL (PrimOf (WithDroppedDeps p)) wX wY Source # | |
PrimPatch prim => Effect (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods effect :: RepoPatchV1 prim wX wY -> FL (PrimOf (RepoPatchV1 prim)) wX wY Source # | |
PrimPatch prim => Effect (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods effect :: RepoPatchV2 prim wX wY -> FL (PrimOf (RepoPatchV2 prim)) wX wY Source # | |
Effect p => Effect (FL p) Source # | |
Effect p => Effect (RL p) Source # | |
Effect (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods effect :: RepoPatchV3 name prim wX wY -> FL (PrimOf (RepoPatchV3 name prim)) wX wY Source # |
class Eq2 (p :: Type -> Type -> Type) where Source #
An witness aware equality class.
A minimal definition defines any one of unsafeCompare
, =\/=
and =/\=
.
Minimal complete definition
Methods
unsafeCompare :: p wA wB -> p wC wD -> Bool Source #
It is unsafe to define a class instance via this method, because
if it returns True then the default implementations of =\/=
and =/\=
will coerce the equality of two witnesses.
Calling this method is safe, although =\/=
or =/\=
would be better
choices as it is not usually meaningul to compare two patches that
don't share either a starting or an ending context
(=\/=) :: p wA wB -> p wA wC -> EqCheck wB wC infix 4 Source #
Compare two things with the same starting witness. If the things compare equal, evidence of the ending witnesses being equal will be returned.
(=/\=) :: p wA wC -> p wB wC -> EqCheck wA wB infix 4 Source #
Compare two things with the same ending witness. If the things compare equal, evidence of the starting witnesses being equal will be returned.
Instances
Eq2 Hunk Source # | |
Eq2 HunkMove Source # | |
Eq2 Prim Source # | |
Eq2 DirPatchType Source # | |
Defined in Darcs.Patch.Prim.V1.Core Methods unsafeCompare :: DirPatchType wA wB -> DirPatchType wC wD -> Bool Source # (=\/=) :: DirPatchType wA wB -> DirPatchType wA wC -> EqCheck wB wC Source # (=/\=) :: DirPatchType wA wC -> DirPatchType wB wC -> EqCheck wA wB Source # | |
Eq2 FilePatchType Source # | |
Defined in Darcs.Patch.Prim.V1.Core Methods unsafeCompare :: FilePatchType wA wB -> FilePatchType wC wD -> Bool Source # (=\/=) :: FilePatchType wA wB -> FilePatchType wA wC -> EqCheck wB wC Source # (=/\=) :: FilePatchType wA wC -> FilePatchType wB wC -> EqCheck wA wB Source # | |
Eq2 Prim Source # | |
Eq2 RebaseName Source # | |
Defined in Darcs.Patch.Rebase.Name Methods unsafeCompare :: RebaseName wA wB -> RebaseName wC wD -> Bool Source # (=\/=) :: RebaseName wA wB -> RebaseName wA wC -> EqCheck wB wC Source # (=/\=) :: RebaseName wA wC -> RebaseName wB wC -> EqCheck wA wB Source # | |
Eq2 Prim Source # | |
Eq2 Prim Source # | |
Eq2 p => Eq2 (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods unsafeCompare :: Invertible p wA wB -> Invertible p wC wD -> Bool Source # (=\/=) :: Invertible p wA wB -> Invertible p wA wC -> EqCheck wB wC Source # (=/\=) :: Invertible p wA wC -> Invertible p wB wC -> EqCheck wA wB Source # | |
(Commute p, Eq2 p) => Eq2 (Named p) Source # | |
Eq2 p => Eq2 (Hopefully p) Source # | |
Eq2 p => Eq2 (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods unsafeCompare :: PatchInfoAndG p wA wB -> PatchInfoAndG p wC wD -> Bool Source # (=\/=) :: PatchInfoAndG p wA wB -> PatchInfoAndG p wA wC -> EqCheck wB wC Source # (=/\=) :: PatchInfoAndG p wA wC -> PatchInfoAndG p wB wC -> EqCheck wA wB Source # | |
Eq2 prim => Eq2 (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods unsafeCompare :: RepoPatchV1 prim wA wB -> RepoPatchV1 prim wC wD -> Bool Source # (=\/=) :: RepoPatchV1 prim wA wB -> RepoPatchV1 prim wA wC -> EqCheck wB wC Source # (=/\=) :: RepoPatchV1 prim wA wC -> RepoPatchV1 prim wB wC -> EqCheck wA wB Source # | |
PrimPatch prim => Eq2 (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods unsafeCompare :: RepoPatchV2 prim wA wB -> RepoPatchV2 prim wC wD -> Bool Source # (=\/=) :: RepoPatchV2 prim wA wB -> RepoPatchV2 prim wA wC -> EqCheck wB wC Source # (=/\=) :: RepoPatchV2 prim wA wC -> RepoPatchV2 prim wB wC -> EqCheck wA wB Source # | |
Eq2 p => Eq2 (FL p) Source # | |
Eq2 p => Eq2 (RL p) Source # | |
(Eq name, Eq2 p) => Eq2 (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods unsafeCompare :: PrimWithName name p wA wB -> PrimWithName name p wC wD -> Bool Source # (=\/=) :: PrimWithName name p wA wB -> PrimWithName name p wA wC -> EqCheck wB wC Source # (=/\=) :: PrimWithName name p wA wC -> PrimWithName name p wB wC -> EqCheck wA wB Source # | |
(SignedId name, Eq2 prim, Commute prim) => Eq2 (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods unsafeCompare :: RepoPatchV3 name prim wA wB -> RepoPatchV3 name prim wC wD -> Bool Source # (=\/=) :: RepoPatchV3 name prim wA wB -> RepoPatchV3 name prim wA wC -> EqCheck wB wC Source # (=/\=) :: RepoPatchV3 name prim wA wC -> RepoPatchV3 name prim wB wC -> EqCheck wA wB Source # | |
(Eq2 a, Eq2 b) => Eq2 (a :> b) Source # | |
class FromPrim (p :: Type -> Type -> Type) where Source #
Minimal complete definition
Methods
fromAnonymousPrim :: PrimOf p wX wY -> p wX wY Source #
fromPrim :: PatchId p -> PrimOf p wX wY -> p wX wY Source #
fromPrims :: PatchInfo -> FL (PrimOf p) wX wY -> FL p wX wY Source #
Instances
FromPrim (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Core Methods fromAnonymousPrim :: PrimOf (RepoPatchV1 prim) wX wY -> RepoPatchV1 prim wX wY Source # fromPrim :: PatchId (RepoPatchV1 prim) -> PrimOf (RepoPatchV1 prim) wX wY -> RepoPatchV1 prim wX wY Source # fromPrims :: PatchInfo -> FL (PrimOf (RepoPatchV1 prim)) wX wY -> FL (RepoPatchV1 prim) wX wY Source # | |
FromPrim (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods fromAnonymousPrim :: PrimOf (RepoPatchV2 prim) wX wY -> RepoPatchV2 prim wX wY Source # fromPrim :: PatchId (RepoPatchV2 prim) -> PrimOf (RepoPatchV2 prim) wX wY -> RepoPatchV2 prim wX wY Source # fromPrims :: PatchInfo -> FL (PrimOf (RepoPatchV2 prim)) wX wY -> FL (RepoPatchV2 prim) wX wY Source # | |
FromPrim (RepoPatchV3 prim) Source # | |
Defined in Darcs.Patch.V3 Methods fromAnonymousPrim :: PrimOf (RepoPatchV3 prim) wX wY -> RepoPatchV3 prim wX wY Source # fromPrim :: PatchId (RepoPatchV3 prim) -> PrimOf (RepoPatchV3 prim) wX wY -> RepoPatchV3 prim wX wY Source # fromPrims :: PatchInfo -> FL (PrimOf (RepoPatchV3 prim)) wX wY -> FL (RepoPatchV3 prim) wX wY Source # |
class IsHunk (p :: Type -> Type -> Type) where Source #
Instances
IsHunk Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Core | |
ObjectIdOf (ApplyState Prim) ~ AnchoredPath => IsHunk Prim Source # | |
Defined in Darcs.Patch.Prim.V1.Core | |
IsHunk Prim Source # | |
Defined in Darcs.Patch.V1.Prim | |
IsHunk Prim Source # | |
Defined in Darcs.Patch.V2.Prim | |
IsHunk (Named p) Source # | |
Defined in Darcs.Patch.Named | |
IsHunk (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods isHunk :: PatchInfoAndG p wX wY -> Maybe (FileHunk (ObjectIdOfPatch (PatchInfoAndG p)) wX wY) Source # | |
IsHunk (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods isHunk :: RebaseChange prim wX wY -> Maybe (FileHunk (ObjectIdOfPatch (RebaseChange prim)) wX wY) Source # | |
(PrimPatch prim, ApplyState prim ~ ApplyState (RepoPatchV1 prim)) => IsHunk (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods isHunk :: RepoPatchV1 prim wX wY -> Maybe (FileHunk (ObjectIdOfPatch (RepoPatchV1 prim)) wX wY) Source # | |
IsHunk prim => IsHunk (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods isHunk :: RepoPatchV2 prim wX wY -> Maybe (FileHunk (ObjectIdOfPatch (RepoPatchV2 prim)) wX wY) Source # | |
IsHunk p => IsHunk (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods isHunk :: PrimWithName name p wX wY -> Maybe (FileHunk (ObjectIdOfPatch (PrimWithName name p)) wX wY) Source # | |
IsHunk prim => IsHunk (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods isHunk :: RepoPatchV3 name prim wX wY -> Maybe (FileHunk (ObjectIdOfPatch (RepoPatchV3 name prim)) wX wY) Source # |
class CleanMerge p => Merge (p :: Type -> Type -> Type) where Source #
Patches that can always be merged, even if they conflict.
Instances should obey the following laws:
- symmetry
merge (p :\/: q) == q' :/\: p' <=> merge (q :\/: p) == p' :/\: q'
- merge-commute
merge (p :\/: q) == q' :/\: p' ==> commute (p :> q') == Just (q :> p')
that is, the two branches of a merge commute to each other.
- extension
cleanMerge (p :\/: q) == Just (q' :/\: p') => merge (p :\/: q) == q' :/\: p'
that is,
merge
is an extension ofcleanMerge
.
Instances
Merge p => Merge (Named p) Source # | |
(PatchId p ~ PatchInfo, Merge p) => Merge (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods merge :: (PatchInfoAndG p :\/: PatchInfoAndG p) wX wY -> (PatchInfoAndG p :/\: PatchInfoAndG p) wX wY Source # | |
PrimPatch prim => Merge (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods merge :: (RepoPatchV1 prim :\/: RepoPatchV1 prim) wX wY -> (RepoPatchV1 prim :/\: RepoPatchV1 prim) wX wY Source # | |
PrimPatch prim => Merge (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods merge :: (RepoPatchV2 prim :\/: RepoPatchV2 prim) wX wY -> (RepoPatchV2 prim :/\: RepoPatchV2 prim) wX wY Source # | |
Merge p => Merge (FL p) Source # | |
(SignedId name, StorableId name, PrimPatch prim) => Merge (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods merge :: (RepoPatchV3 name prim :\/: RepoPatchV3 name prim) wX wY -> (RepoPatchV3 name prim :/\: RepoPatchV3 name prim) wX wY Source # |
class PatchInspect (p :: Type -> Type -> Type) where Source #
Methods
listTouchedFiles :: p wX wY -> [AnchoredPath] Source #
hunkMatches :: (ByteString -> Bool) -> p wX wY -> Bool Source #
Instances
PatchInspect Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Core Methods listTouchedFiles :: Prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool Source # | |
PatchInspect Prim Source # | |
Defined in Darcs.Patch.Prim.V1.Core Methods listTouchedFiles :: Prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool Source # | |
PatchInspect RebaseName Source # | |
Defined in Darcs.Patch.Rebase.Name Methods listTouchedFiles :: RebaseName wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RebaseName wX wY -> Bool Source # | |
PatchInspect Prim Source # | |
Defined in Darcs.Patch.V1.Prim Methods listTouchedFiles :: Prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool Source # | |
PatchInspect Prim Source # | |
Defined in Darcs.Patch.V2.Prim Methods listTouchedFiles :: Prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> Prim wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (LabelledPatch p) Source # | |
Defined in Darcs.Patch.Choices Methods listTouchedFiles :: LabelledPatch p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> LabelledPatch p wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods listTouchedFiles :: Invertible p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> Invertible p wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (Named p) Source # | |
Defined in Darcs.Patch.Named Methods listTouchedFiles :: Named p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> Named p wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods listTouchedFiles :: PatchInfoAndG p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> PatchInfoAndG p wX wY -> Bool Source # | |
PatchInspect prim => PatchInspect (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods listTouchedFiles :: RebaseChange prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RebaseChange prim wX wY -> Bool Source # | |
PatchInspect prim => PatchInspect (RebaseFixup prim) Source # | |
Defined in Darcs.Patch.Rebase.Fixup Methods listTouchedFiles :: RebaseFixup prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RebaseFixup prim wX wY -> Bool Source # | |
PrimPatch prim => PatchInspect (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods listTouchedFiles :: RepoPatchV1 prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RepoPatchV1 prim wX wY -> Bool Source # | |
PatchInspect prim => PatchInspect (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods listTouchedFiles :: RepoPatchV2 prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RepoPatchV2 prim wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (FL p) Source # | |
Defined in Darcs.Patch.Inspect Methods listTouchedFiles :: FL p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> FL p wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (RL p) Source # | |
Defined in Darcs.Patch.Inspect Methods listTouchedFiles :: RL p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RL p wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods listTouchedFiles :: PrimWithName name p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> PrimWithName name p wX wY -> Bool Source # | |
PatchInspect prim => PatchInspect (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods listTouchedFiles :: RepoPatchV3 name prim wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> RepoPatchV3 name prim wX wY -> Bool Source # | |
PatchInspect p => PatchInspect (PatchSeq p) Source # | |
Defined in Darcs.UI.Commands.Test.Impl Methods listTouchedFiles :: PatchSeq p wX wY -> [AnchoredPath] Source # hunkMatches :: (ByteString -> Bool) -> PatchSeq p wX wY -> Bool Source # |
class PatchListFormat (p :: Type -> Type -> Type) where Source #
Showing and reading lists of patches. This class allows us to control how
lists of patches are formatted on disk. For legacy reasons V1 patches have
their own special treatment (see ListFormat
). Other patch types use the
default format which just puts them in a sequence without separators or any
prelude/epilogue.
This means that 'FL (FL p)' etc would be ambiguous, so there are no instances for 'FL p' or other list types.
Minimal complete definition
Nothing
Methods
patchListFormat :: ListFormat p Source #
Instances
PatchListFormat Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Show Methods | |
PatchListFormat Prim Source # | |
Defined in Darcs.Patch.V1.Prim Methods | |
PatchListFormat Prim Source # | |
Defined in Darcs.Patch.V2.Prim Methods | |
PatchListFormat (Bracketed p) Source # | |
Defined in Darcs.Patch.Bracketed Methods patchListFormat :: ListFormat (Bracketed p) Source # | |
PatchListFormat p => PatchListFormat (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods patchListFormat :: ListFormat (Invertible p) Source # | |
PatchListFormat (Named p) Source # | |
Defined in Darcs.Patch.Named Methods patchListFormat :: ListFormat (Named p) Source # | |
PatchListFormat (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods | |
PatchListFormat (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods patchListFormat :: ListFormat (RebaseChange prim) Source # | |
PatchListFormat (RebaseFixup prim) Source # | |
Defined in Darcs.Patch.Rebase.Fixup Methods patchListFormat :: ListFormat (RebaseFixup prim) Source # | |
PatchListFormat (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Core Methods patchListFormat :: ListFormat (RepoPatchV1 prim) Source # | |
PatchListFormat (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods patchListFormat :: ListFormat (RepoPatchV2 prim) Source # | |
PatchListFormat (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods patchListFormat :: ListFormat (PrimWithName name p) Source # | |
PatchListFormat (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods patchListFormat :: ListFormat (RepoPatchV3 name prim) Source # |
class PrimPatch (PrimOf p) => PrimPatchBase (p :: Type -> Type -> Type) Source #
Instances
PrimPatchBase p => PrimPatchBase (Invertible p) Source # | |||||
Defined in Darcs.Patch.Invertible Associated Types
| |||||
PrimPatchBase p => PrimPatchBase (Named p) Source # | |||||
Defined in Darcs.Patch.Named | |||||
PrimPatchBase p => PrimPatchBase (PatchInfoAndG p) Source # | |||||
Defined in Darcs.Patch.PatchInfoAnd Associated Types
| |||||
PrimPatch prim => PrimPatchBase (RebaseChange prim) Source # | |||||
Defined in Darcs.Patch.Rebase.Change Associated Types
| |||||
PrimPatchBase p => PrimPatchBase (WithDroppedDeps p) Source # | |||||
Defined in Darcs.Patch.Rebase.Change Associated Types
| |||||
PrimPatch prim => PrimPatchBase (RebaseFixup prim) Source # | |||||
Defined in Darcs.Patch.Rebase.Fixup Associated Types
| |||||
PrimPatch prim => PrimPatchBase (RepoPatchV1 prim) Source # | |||||
Defined in Darcs.Patch.V1.Core Associated Types
| |||||
PrimPatch prim => PrimPatchBase (RepoPatchV2 prim) Source # | |||||
Defined in Darcs.Patch.V2.RepoPatch Associated Types
| |||||
PrimPatchBase p => PrimPatchBase (FL p) Source # | |||||
Defined in Darcs.Patch.FromPrim | |||||
PrimPatchBase p => PrimPatchBase (RL p) Source # | |||||
Defined in Darcs.Patch.FromPrim | |||||
PrimPatch prim => PrimPatchBase (RepoPatchV3 name prim) Source # | |||||
Defined in Darcs.Patch.V3.Core Associated Types
|
class ReadPatch (p :: Type -> Type -> Type) where Source #
This class is used to decode patches from their binary representation.
Methods
readPatch' :: Parser (Sealed (p wX)) Source #
Instances
ReadPatch Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Read | |
ReadPatch RebaseName Source # | |
Defined in Darcs.Patch.Rebase.Name Methods readPatch' :: Parser (Sealed (RebaseName wX)) Source # | |
ReadPatch Prim Source # | |
Defined in Darcs.Patch.V1.Prim | |
ReadPatch Prim Source # | |
Defined in Darcs.Patch.V2.Prim | |
ReadPatch p => ReadPatch (Bracketed p) Source # | |
Defined in Darcs.Patch.Read | |
(ReadPatch p, PatchListFormat p) => ReadPatch (Named p) Source # | |
Defined in Darcs.Patch.Named | |
(ReadPatch p, Ident p, PatchId p ~ PatchInfo) => ReadPatch (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods readPatch' :: Parser (Sealed (PatchInfoAndG p wX)) Source # | |
(ReadPatch prim, PatchListFormat prim) => ReadPatch (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods readPatch' :: Parser (Sealed (RebaseChange prim wX)) Source # | |
ReadPatch prim => ReadPatch (RebaseFixup prim) Source # | |
Defined in Darcs.Patch.Rebase.Fixup Methods readPatch' :: Parser (Sealed (RebaseFixup prim wX)) Source # | |
(PrimPatchBase p, PatchListFormat p, ReadPatch p) => ReadPatch (RebaseItem p) Source # | |
Defined in Darcs.Patch.Rebase.Legacy.Item Methods readPatch' :: Parser (Sealed (RebaseItem p wX)) Source # | |
RepoPatch p => ReadPatch (WrappedNamed p) Source # | |
Defined in Darcs.Patch.Rebase.Legacy.Wrapped Methods readPatch' :: Parser (Sealed (WrappedNamed p wX)) Source # | |
PrimPatch prim => ReadPatch (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Read Methods readPatch' :: Parser (Sealed (RepoPatchV1 prim wX)) Source # | |
PrimPatch prim => ReadPatch (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods readPatch' :: Parser (Sealed (RepoPatchV2 prim wX)) Source # | |
(ReadPatch p, PatchListFormat p) => ReadPatch (FL p) Source # | |
Defined in Darcs.Patch.Read | |
(ReadPatch p, PatchListFormat p) => ReadPatch (RL p) Source # | |
Defined in Darcs.Patch.Read | |
(StorableId name, ReadPatch p) => ReadPatch (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods readPatch' :: Parser (Sealed (PrimWithName name p wX)) Source # | |
(SignedId name, StorableId name, PrimPatch prim) => ReadPatch (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods readPatch' :: Parser (Sealed (RepoPatchV3 name prim wX)) Source # |
class Apply p => RepairToFL (p :: Type -> Type -> Type) where Source #
RepairToFL
is implemented by single patches that can be repaired (Prim,
Patch, RepoPatchV2) There is a default so that patch types with no current
legacy problems don't need to have an implementation.
Minimal complete definition
Nothing
Methods
applyAndTryToFixFL :: ApplyMonad (ApplyState p) m => p wX wY -> m (Maybe (String, FL p wX wY)) Source #
Instances
RepairToFL Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Apply Methods applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) Source # | |
RepairToFL Prim Source # | |
Defined in Darcs.Patch.Prim.V1.Apply Methods applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) Source # | |
RepairToFL Prim Source # | |
Defined in Darcs.Patch.V1.Prim Methods applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) Source # | |
RepairToFL Prim Source # | |
Defined in Darcs.Patch.V2.Prim Methods applyAndTryToFixFL :: ApplyMonad (ApplyState Prim) m => Prim wX wY -> m (Maybe (String, FL Prim wX wY)) Source # | |
PrimPatch prim => RepairToFL (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Apply Methods applyAndTryToFixFL :: ApplyMonad (ApplyState (RepoPatchV1 prim)) m => RepoPatchV1 prim wX wY -> m (Maybe (String, FL (RepoPatchV1 prim) wX wY)) Source # | |
PrimPatch prim => RepairToFL (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods applyAndTryToFixFL :: ApplyMonad (ApplyState (RepoPatchV2 prim)) m => RepoPatchV2 prim wX wY -> m (Maybe (String, FL (RepoPatchV2 prim) wX wY)) Source # | |
Apply p => RepairToFL (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods applyAndTryToFixFL :: ApplyMonad (ApplyState (PrimWithName name p)) m => PrimWithName name p wX wY -> m (Maybe (String, FL (PrimWithName name p) wX wY)) Source # | |
PrimPatch prim => RepairToFL (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods applyAndTryToFixFL :: ApplyMonad (ApplyState (RepoPatchV3 name prim)) m => RepoPatchV3 name prim wX wY -> m (Maybe (String, FL (RepoPatchV3 name prim) wX wY)) Source # |
class ShowPatchBasic p => ShowContextPatch (p :: Type -> Type -> Type) where Source #
Methods
showPatchWithContextAndApply :: ApplyMonad (ApplyState p) m => ShowPatchFor -> p wX wY -> m Doc Source #
Show a patch with context lines added, as diff -u does. Thus, it
differs from showPatch only for hunks. It is used for instance before
putting it into a bundle. As this unified context is not included in
patch representation, this requires access to the ApplyState
.
Note that this applies the patch in the ApplyMonad
given by the
context. This is done in order to simplify showing multiple patches in a
series, since each patch may change the context lines for later changes.
For a version that does not apply the patch see showPatchWithContext
.
Instances
Apply Prim => ShowContextPatch Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Show Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState Prim) m => ShowPatchFor -> Prim wX wY -> m Doc Source # | |
ShowContextPatch Prim Source # | |
Defined in Darcs.Patch.V1.Prim Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState Prim) m => ShowPatchFor -> Prim wX wY -> m Doc Source # | |
ShowContextPatch Prim Source # | |
Defined in Darcs.Patch.V2.Prim Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState Prim) m => ShowPatchFor -> Prim wX wY -> m Doc Source # | |
ShowContextPatch p => ShowContextPatch (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (Invertible p)) m => ShowPatchFor -> Invertible p wX wY -> m Doc Source # | |
(Apply p, IsHunk p, PatchListFormat p, ObjectId (ObjectIdOfPatch p), ShowContextPatch p) => ShowContextPatch (Named p) Source # | |
Defined in Darcs.Patch.Named Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (Named p)) m => ShowPatchFor -> Named p wX wY -> m Doc Source # | |
ShowContextPatch p => ShowContextPatch (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (PatchInfoAndG p)) m => ShowPatchFor -> PatchInfoAndG p wX wY -> m Doc Source # | |
PrimPatch prim => ShowContextPatch (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (RebaseChange prim)) m => ShowPatchFor -> RebaseChange prim wX wY -> m Doc Source # | |
PrimPatch prim => ShowContextPatch (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Viewing Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (RepoPatchV1 prim)) m => ShowPatchFor -> RepoPatchV1 prim wX wY -> m Doc Source # | |
PrimPatch prim => ShowContextPatch (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (RepoPatchV2 prim)) m => ShowPatchFor -> RepoPatchV2 prim wX wY -> m Doc Source # | |
(Apply p, IsHunk p, PatchListFormat p, ShowContextPatch p, ObjectId (ObjectIdOfPatch p)) => ShowContextPatch (FL p) Source # | |
Defined in Darcs.Patch.Viewing Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (FL p)) m => ShowPatchFor -> FL p wX wY -> m Doc Source # | |
(ShowContextPatch p, Apply p, IsHunk p, PatchListFormat p, ObjectId (ObjectIdOfPatch p)) => ShowContextPatch (RL p) Source # | |
Defined in Darcs.Patch.Viewing Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (RL p)) m => ShowPatchFor -> RL p wX wY -> m Doc Source # | |
(StorableId name, ShowContextPatch p) => ShowContextPatch (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (PrimWithName name p)) m => ShowPatchFor -> PrimWithName name p wX wY -> m Doc Source # | |
(SignedId name, StorableId name, PrimPatch prim) => ShowContextPatch (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods showPatchWithContextAndApply :: ApplyMonad (ApplyState (RepoPatchV3 name prim)) m => ShowPatchFor -> RepoPatchV3 name prim wX wY -> m Doc Source # |
class ShowPatchBasic p => ShowPatch (p :: Type -> Type -> Type) where Source #
This class is used only for user interaction, not for storage. The default
implementations for description
and content
are suitable only for
PrimPatch
and RepoPatch
types. Logically, description
should default
to mempty
while content
should default to displayPatch
. We define them
the other way around so that showFriendly
gives
reasonable results for all patch types.
Minimal complete definition
Methods
content :: p wX wY -> Doc Source #
description :: p wX wY -> Doc Source #
summary :: p wX wY -> Doc Source #
summaryFL :: FL p wX wY -> Doc Source #
Instances
ShowPatch Prim Source # | |
ShowPatch RebaseName Source # | |
Defined in Darcs.Patch.Rebase.Name Methods content :: RebaseName wX wY -> Doc Source # description :: RebaseName wX wY -> Doc Source # summary :: RebaseName wX wY -> Doc Source # summaryFL :: FL RebaseName wX wY -> Doc Source # thing :: RebaseName wX wY -> String Source # things :: RebaseName wX wY -> String Source # | |
ShowPatch Prim Source # | |
ShowPatch Prim Source # | |
ShowPatch p => ShowPatch (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods content :: Invertible p wX wY -> Doc Source # description :: Invertible p wX wY -> Doc Source # summary :: Invertible p wX wY -> Doc Source # summaryFL :: FL (Invertible p) wX wY -> Doc Source # thing :: Invertible p wX wY -> String Source # things :: Invertible p wX wY -> String Source # | |
(Summary p, PatchListFormat p, PrimPatchBase p, ShowPatch p) => ShowPatch (Named p) Source # | |
(Summary p, PatchListFormat p, ShowPatch p) => ShowPatch (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods content :: PatchInfoAndG p wX wY -> Doc Source # description :: PatchInfoAndG p wX wY -> Doc Source # summary :: PatchInfoAndG p wX wY -> Doc Source # summaryFL :: FL (PatchInfoAndG p) wX wY -> Doc Source # thing :: PatchInfoAndG p wX wY -> String Source # things :: PatchInfoAndG p wX wY -> String Source # | |
PrimPatch prim => ShowPatch (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods content :: RebaseChange prim wX wY -> Doc Source # description :: RebaseChange prim wX wY -> Doc Source # summary :: RebaseChange prim wX wY -> Doc Source # summaryFL :: FL (RebaseChange prim) wX wY -> Doc Source # thing :: RebaseChange prim wX wY -> String Source # things :: RebaseChange prim wX wY -> String Source # | |
PrimPatch prim => ShowPatch (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Viewing Methods content :: RepoPatchV1 prim wX wY -> Doc Source # description :: RepoPatchV1 prim wX wY -> Doc Source # summary :: RepoPatchV1 prim wX wY -> Doc Source # summaryFL :: FL (RepoPatchV1 prim) wX wY -> Doc Source # thing :: RepoPatchV1 prim wX wY -> String Source # things :: RepoPatchV1 prim wX wY -> String Source # | |
PrimPatch prim => ShowPatch (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods content :: RepoPatchV2 prim wX wY -> Doc Source # description :: RepoPatchV2 prim wX wY -> Doc Source # summary :: RepoPatchV2 prim wX wY -> Doc Source # summaryFL :: FL (RepoPatchV2 prim) wX wY -> Doc Source # thing :: RepoPatchV2 prim wX wY -> String Source # things :: RepoPatchV2 prim wX wY -> String Source # | |
(PatchListFormat p, ShowPatch p) => ShowPatch (FL p) Source # | |
(PatchListFormat p, ShowPatch p) => ShowPatch (RL p) Source # | |
(StorableId name, PrimDetails p, ShowPatchBasic p) => ShowPatch (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods content :: PrimWithName name p wX wY -> Doc Source # description :: PrimWithName name p wX wY -> Doc Source # summary :: PrimWithName name p wX wY -> Doc Source # summaryFL :: FL (PrimWithName name p) wX wY -> Doc Source # thing :: PrimWithName name p wX wY -> String Source # things :: PrimWithName name p wX wY -> String Source # | |
(SignedId name, StorableId name, PrimPatch prim) => ShowPatch (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods content :: RepoPatchV3 name prim wX wY -> Doc Source # description :: RepoPatchV3 name prim wX wY -> Doc Source # summary :: RepoPatchV3 name prim wX wY -> Doc Source # summaryFL :: FL (RepoPatchV3 name prim) wX wY -> Doc Source # thing :: RepoPatchV3 name prim wX wY -> String Source # things :: RepoPatchV3 name prim wX wY -> String Source # |
class ShowPatchBasic (p :: Type -> Type -> Type) where Source #
Methods
showPatch :: ShowPatchFor -> p wX wY -> Doc Source #
Instances
ShowPatchBasic Prim Source # | |
Defined in Darcs.Patch.Prim.FileUUID.Show | |
ShowPatchBasic RebaseName Source # | |
Defined in Darcs.Patch.Rebase.Name Methods showPatch :: ShowPatchFor -> RebaseName wX wY -> Doc Source # | |
ShowPatchBasic Prim Source # | |
Defined in Darcs.Patch.V1.Prim | |
ShowPatchBasic Prim Source # | |
Defined in Darcs.Patch.V2.Prim | |
ShowPatchBasic p => ShowPatchBasic (Bracketed p) Source # | |
Defined in Darcs.Patch.Bracketed | |
ShowPatchBasic p => ShowPatchBasic (Invertible p) Source # | |
Defined in Darcs.Patch.Invertible Methods showPatch :: ShowPatchFor -> Invertible p wX wY -> Doc Source # | |
(PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (Named p) Source # | |
Defined in Darcs.Patch.Named | |
ShowPatchBasic p => ShowPatchBasic (PatchInfoAndG p) Source # | |
Defined in Darcs.Patch.PatchInfoAnd Methods showPatch :: ShowPatchFor -> PatchInfoAndG p wX wY -> Doc Source # | |
PrimPatch prim => ShowPatchBasic (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods showPatch :: ShowPatchFor -> RebaseChange prim wX wY -> Doc Source # | |
ShowPatchBasic prim => ShowPatchBasic (RebaseFixup prim) Source # | |
Defined in Darcs.Patch.Rebase.Fixup Methods showPatch :: ShowPatchFor -> RebaseFixup prim wX wY -> Doc Source # | |
(PatchListFormat prim, ShowPatchBasic prim) => ShowPatchBasic (Unwound prim) Source # | |
Defined in Darcs.Patch.Unwind | |
ShowPatchBasic prim => ShowPatchBasic (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Show Methods showPatch :: ShowPatchFor -> RepoPatchV1 prim wX wY -> Doc Source # | |
PrimPatch prim => ShowPatchBasic (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods showPatch :: ShowPatchFor -> RepoPatchV2 prim wX wY -> Doc Source # | |
(PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (FL p) Source # | |
Defined in Darcs.Patch.Viewing | |
(PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (RL p) Source # | |
Defined in Darcs.Patch.Viewing | |
(StorableId name, ShowPatchBasic p) => ShowPatchBasic (PrimWithName name p) Source # | |
Defined in Darcs.Patch.Prim.WithName Methods showPatch :: ShowPatchFor -> PrimWithName name p wX wY -> Doc Source # | |
(SignedId name, StorableId name, PrimPatch prim) => ShowPatchBasic (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods showPatch :: ShowPatchFor -> RepoPatchV3 name prim wX wY -> Doc Source # |
class Summary (p :: Type -> Type -> Type) where Source #
Methods
conflictedEffect :: p wX wY -> [IsConflictedPrim (PrimOf p)] Source #
Instances
Summary p => Summary (Named p) Source # | |
Defined in Darcs.Patch.Named Methods conflictedEffect :: Named p wX wY -> [IsConflictedPrim (PrimOf (Named p))] Source # | |
Commute prim => Summary (RebaseChange prim) Source # | |
Defined in Darcs.Patch.Rebase.Change Methods conflictedEffect :: RebaseChange prim wX wY -> [IsConflictedPrim (PrimOf (RebaseChange prim))] Source # | |
PrimPatch prim => Summary (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods conflictedEffect :: RepoPatchV1 prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV1 prim))] Source # | |
Summary (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods conflictedEffect :: RepoPatchV2 prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV2 prim))] Source # | |
Summary p => Summary (FL p) Source # | |
Defined in Darcs.Patch.Summary Methods conflictedEffect :: FL p wX wY -> [IsConflictedPrim (PrimOf (FL p))] Source # | |
Summary (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods conflictedEffect :: RepoPatchV3 name prim wX wY -> [IsConflictedPrim (PrimOf (RepoPatchV3 name prim))] Source # |
class ToPrim (p :: Type -> Type -> Type) where Source #
Instances
ToPrim (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Core Methods toPrim :: RepoPatchV1 prim wX wY -> Maybe (PrimOf (RepoPatchV1 prim) wX wY) Source # | |
ToPrim (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods toPrim :: RepoPatchV2 prim wX wY -> Maybe (PrimOf (RepoPatchV2 prim) wX wY) Source # | |
ToPrim (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods toPrim :: RepoPatchV3 name prim wX wY -> Maybe (PrimOf (RepoPatchV3 name prim) wX wY) Source # |
class Unwind (p :: Type -> Type -> Type) where Source #
Methods
fullUnwind :: p wX wY -> Unwound (PrimOf p) wX wY Source #
Get hold of the underlying primitives for a given patch, placed in the context of the patch. If there are conflicts then context patches will be needed.
Instances
(PrimPatchBase p, Unwind p) => Unwind (Named p) Source # | |
Defined in Darcs.Patch.Named | |
PrimPatch prim => Unwind (RepoPatchV1 prim) Source # | |
Defined in Darcs.Patch.V1.Commute Methods fullUnwind :: RepoPatchV1 prim wX wY -> Unwound (PrimOf (RepoPatchV1 prim)) wX wY Source # | |
PrimPatch prim => Unwind (RepoPatchV2 prim) Source # | |
Defined in Darcs.Patch.V2.RepoPatch Methods fullUnwind :: RepoPatchV2 prim wX wY -> Unwound (PrimOf (RepoPatchV2 prim)) wX wY Source # | |
(Invert prim, Commute prim, Eq2 prim) => Unwind (RepoPatchV3 name prim) Source # | |
Defined in Darcs.Patch.V3.Core Methods fullUnwind :: RepoPatchV3 name prim wX wY -> Unwound (PrimOf (RepoPatchV3 name prim)) wX wY Source # |