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

Safe Haskell | None

Darcs.Patch.Patchy

Synopsis

- class (MyEq p, Apply p, Commute p, PatchInspect p, ShowPatch p, ReadPatch p, Invert p) => Patchy p
- class Apply p where
  - type ApplyState p :: (* -> *) -> *
  - apply :: ApplyMonad m (ApplyState p) => p x y -> m ()
- class Commute p where
  - commute :: (p :> p) x y -> Maybe ((p :> p) x y)
- class Invert p where
  - invert :: p x y -> p y x
- class PatchInspect p where
  - listTouchedFiles :: p x y -> [FilePath]
  - hunkMatches :: (ByteString -> Bool) -> p x y -> Bool
- class ReadPatch p where
  - readPatch' :: ParserM m => m (Sealed (p x))
- showPatch :: ShowPatchBasic p => p x y -> Doc
- class ShowPatchBasic p => ShowPatch p where
  - showNicely :: p x y -> Doc
  - showContextPatch :: (Monad m, ApplyMonadTrans m (ApplyState p), ApplyMonad m (ApplyState p)) => p x y -> m Doc
  - description :: p x y -> Doc
  - summary :: p x y -> Doc
  - summaryFL :: FL p x y -> Doc
  - thing :: p x y -> String
  - things :: p x y -> String

# Documentation

class (MyEq p, Apply p, Commute p, PatchInspect p, ShowPatch p, ReadPatch p, Invert p) => Patchy p

Instances

Patchy Prim |
Patchy Prim |
Patchy DummyPatch |
(IsHunk p, PatchListFormat p, Patchy p) => Patchy (RL p) |
(IsHunk p, PatchListFormat p, Patchy p) => Patchy (FL p) |
PrimPatch prim => Patchy (Patch prim) |
(CommuteNoConflicts p, Conflict p, IsHunk p, PatchListFormat p, PrimPatchBase p, Patchy p, ~ ((* -> *) -> *) (ApplyState p) Tree) => Patchy (Named p) |
(RepoPatch p, ~ ((* -> *) -> *) (ApplyState p) Tree) => Patchy (PatchInfoAnd p) |
PrimPatch prim => Patchy (RealPatch prim) |

class Apply p where

Associated Types

type ApplyState p :: (* -> *) -> *

Methods

apply :: ApplyMonad m (ApplyState p) => p x y -> m ()

Instances

Apply Prim |
Apply Prim |
Apply DummyPatch |
Apply p => Apply (RL p) |
Apply p => Apply (FL p) |
PrimPatch prim => Apply (Patch prim) |
Apply p => Apply (Named p) |
Apply p => Apply (PatchInfoAnd p) |
PrimPatch prim => Apply (RealPatch prim) |

class Commute p where

Things that can commute.

Methods

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

Instances

Commute Prim |
Commute Prim |
Commute DummyPatch |
Commute p => Commute (RL p) |
Commute p => Commute (FL p) |
PrimPatch prim => Commute (Patch prim) |
Commute p => Commute (Named p) |
Commute p => Commute (PatchInfoAnd p) |
Commute p => Commute (TaggedPatch p) |
PrimPatch prim => Commute (RealPatch prim) |

class Invert p where

Methods

invert :: p x y -> p y x

Instances

Invert Prim |
Invert Prim |
Invert DummyPatch |
(Commute p, Invert p) => Invert (RL p) |
(Invert p, Commute p) => Invert (FL p) |
Invert prim => Invert (Patch prim) |
(Commute p, Invert p) => Invert (Named p) |
(Commute p, Invert p) => Invert (PatchInfoAnd p) |
Invert p => Invert (TaggedPatch p) |
Invert prim => Invert (RealPatch prim) |

class PatchInspect p where

Methods

listTouchedFiles :: p x y -> [FilePath]

hunkMatches :: (ByteString -> Bool) -> p x y -> Bool

Instances

PatchInspect Prim |
PatchInspect Prim |
PatchInspect DummyPatch |
PatchInspect p => PatchInspect (RL p) |
PatchInspect p => PatchInspect (FL p) |
PrimPatch prim => PatchInspect (Patch prim) |
PatchInspect p => PatchInspect (Named p) |
PatchInspect p => PatchInspect (PatchInfoAnd p) |
PatchInspect p => PatchInspect (TaggedPatch p) |
PatchInspect prim => PatchInspect (RealPatch prim) |

class ReadPatch p where

Methods

readPatch' :: ParserM m => m (Sealed (p x))

Instances

ReadPatch Prim |
ReadPatch Prim |
ReadPatch DummyPatch |
(ReadPatch p, PatchListFormat p) => ReadPatch (RL p) |
(ReadPatch p, PatchListFormat p) => ReadPatch (FL p) |
ReadPatch p => ReadPatch (Bracketed p) |
PrimPatch prim => ReadPatch (Patch prim) |
(ReadPatch p, PatchListFormat p) => ReadPatch (Named p) |
(ReadPatch p, PatchListFormat p) => ReadPatch (PatchInfoAnd p) |
PrimPatch prim => ReadPatch (RealPatch prim) |

showPatch :: ShowPatchBasic p => p x y -> Doc

class ShowPatchBasic p => ShowPatch p where

Methods

showNicely :: p x y -> Doc

showContextPatch :: (Monad m, ApplyMonadTrans m (ApplyState p), ApplyMonad m (ApplyState p)) => p x y -> m Doc

showContextPatch is used to add context to a patch, 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 tree.

description :: p x y -> Doc

summary :: p x y -> Doc

summaryFL :: FL p x y -> Doc

thing :: p x y -> String

things :: p x y -> String

Instances

~ ((* -> *) -> *) (ApplyState Prim) Tree => ShowPatch Prim |
ShowPatch Prim |
ShowPatch DummyPatch |
(Apply p, IsHunk p, PatchListFormat p, ShowPatch p) => ShowPatch (RL p) |
(Apply p, IsHunk p, PatchListFormat p, ShowPatch p) => ShowPatch (FL p) |
PrimPatch prim => ShowPatch (Patch prim) |
(Apply p, CommuteNoConflicts p, Conflict p, IsHunk p, PatchListFormat p, PrimPatchBase p, ShowPatch p) => ShowPatch (Named p) |
(Apply p, Conflict p, CommuteNoConflicts p, IsHunk p, PatchListFormat p, PrimPatchBase p, ShowPatch p, ~ ((* -> *) -> *) (ApplyState p) Tree) => ShowPatch (PatchInfoAnd p) |
PrimPatch prim => ShowPatch (RealPatch prim) |