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

Safe Haskell | None
Language | Haskell2010

Darcs.Patch.Set

Synopsis

- data PatchSet rt p wStart wY where
  - PatchSet :: RL (Tagged rt p) wStart wX -> RL (PatchInfoAnd rt p) wX wY -> PatchSet rt p wStart wY
- data Tagged rt p wX wZ where
  - Tagged :: PatchInfoAnd rt p wY wZ -> Maybe String -> RL (PatchInfoAnd rt p) wX wY -> Tagged rt p wX wZ
- type SealedPatchSet rt p wStart = Sealed (PatchSet rt p wStart)
- data Origin
- progressPatchSet :: String -> PatchSet rt p wStart wX -> PatchSet rt p wStart wX
- tags :: PatchSet rt p wStart wX -> [PatchInfo]
- emptyPatchSet :: PatchSet rt p wX wX
- appendPSFL :: PatchSet rt p wStart wX -> FL (PatchInfoAnd rt p) wX wY -> PatchSet rt p wStart wY
- newset2RL :: PatchSet rt p wStart wX -> RL (PatchInfoAnd rt p) wStart wX
- newset2FL :: PatchSet rt p wStart wX -> FL (PatchInfoAnd rt p) wStart wX
- patchSetfMap :: (forall wW wZ. PatchInfoAnd rt p wW wZ -> IO a) -> PatchSet rt p wW' wZ' -> IO [a]

# Documentation

data PatchSet rt p wStart wY where #

The patches in a repository are stored in chunks broken up at "clean" tags. A tag is clean if the only patches before it in the current repository ordering are ones that the tag depends on (either directly or indirectly). Each chunk is stored in a separate inventory file on disk.

A `PatchSet` represents a repo's history as the list of patches since the last clean tag, and then a list of patch lists each delimited by clean tags.

Constructors

PatchSet :: RL (Tagged rt p) wStart wX -> RL (PatchInfoAnd rt p) wX wY -> PatchSet rt p wStart wY |

Instances

Show2 p => Show2 (PatchSet rt p) # |
Methods showDict2 :: ShowDict (PatchSet rt p wX wY) #
Show2 p => Show1 (PatchSet rt p wStart) # |
Methods showDict1 :: ShowDict (PatchSet rt p wStart wX) #
Show2 p => Show (PatchSet rt p wStart wY) # |
Methods showsPrec :: Int -> PatchSet rt p wStart wY -> ShowS # show :: PatchSet rt p wStart wY -> String # showList :: [PatchSet rt p wStart wY] -> ShowS #

data Tagged rt p wX wZ where #

A `Tagged` is a single chunk of a `PatchSet`. It has a `PatchInfo` representing a clean tag, the hash of the previous inventory (if it exists), and the list of patches since that previous inventory.

Constructors

Tagged :: PatchInfoAnd rt p wY wZ -> Maybe String -> RL (PatchInfoAnd rt p) wX wY -> Tagged rt p wX wZ |

Instances

Show2 p => Show2 (Tagged rt p) # |
Methods showDict2 :: ShowDict (Tagged rt p wX wY) #
Show2 p => Show1 (Tagged rt p wX) # |
Methods showDict1 :: ShowDict (Tagged rt p wX wX) #
Show2 p => Show (Tagged rt p wX wZ) # |
Methods showsPrec :: Int -> Tagged rt p wX wZ -> ShowS # show :: Tagged rt p wX wZ -> String # showList :: [Tagged rt p wX wZ] -> ShowS #

type SealedPatchSet rt p wStart = Sealed (PatchSet rt p wStart) #

data Origin #

`Origin` is a type used to represent the initial context of a repo.

progressPatchSet :: String -> PatchSet rt p wStart wX -> PatchSet rt p wStart wX #

Runs a progress action for each tag and patch in a given PatchSet, using the passed progress message. Does not alter the PatchSet.

tags :: PatchSet rt p wStart wX -> [PatchInfo] #

`tags` returns the PatchInfos corresponding to the tags of a given `PatchSet`.

emptyPatchSet :: PatchSet rt p wX wX #

appendPSFL :: PatchSet rt p wStart wX -> FL (PatchInfoAnd rt p) wX wY -> PatchSet rt p wStart wY #

`appendPSFL` takes a `PatchSet` and a `FL` of patches that "follow" the PatchSet, and concatenates the patches into the PatchSet.

newset2RL :: PatchSet rt p wStart wX -> RL (PatchInfoAnd rt p) wStart wX #

`newset2RL` takes a `PatchSet` and returns an equivalent, linear `RL` of patches.

newset2FL :: PatchSet rt p wStart wX -> FL (PatchInfoAnd rt p) wStart wX #

`newset2FL` takes a `PatchSet` and returns an equivalent, linear `FL` of patches.

patchSetfMap :: (forall wW wZ. PatchInfoAnd rt p wW wZ -> IO a) -> PatchSet rt p wW' wZ' -> IO [a] #