darcs

Darcs.SelectChanges

Synopsis

- selectChanges :: forall p. Patchy p => WhichChanges -> FL p -> PatchSelection p
- data WhichChanges
  - = Last
  - | LastReversed
  - | First
  - | FirstReversed
- viewChanges :: Patchy p => [DarcsFlag] -> [Sealed2 p] -> IO ()
- withSelectedPatchFromRepo :: forall p. RepoPatch p => String -> Repository p -> [DarcsFlag] -> ((FL (PatchInfoAnd p) :> PatchInfoAnd p) -> IO ()) -> IO ()
- filterOutConflicts :: RepoPatch p => [DarcsFlag] -> RL (PatchInfoAnd p) -> Repository p -> FL (PatchInfoAnd p) -> IO (Bool, Sealed (FL (PatchInfoAnd p)))
- runSelection :: Patchy p => PatchSelection p -> PatchSelectionContext p -> IO (FL p :> FL p)
- selectionContextPrim :: String -> [DarcsFlag] -> Maybe (Splitter Prim) -> [FilePath] -> PatchSelectionContext Prim
- selectionContext :: RepoPatch p => String -> [DarcsFlag] -> Maybe (Splitter (PatchInfoAnd p)) -> [FilePath] -> PatchSelectionContext (PatchInfoAnd p)

# Documentation

selectChanges :: forall p. Patchy p => WhichChanges -> FL p -> PatchSelection p

Select patches from a `FL`.

data WhichChanges

When asking about patches, we either ask about them in oldest-first or newest first (with respect to the current ordering of the repository), and we either want an initial segment or a final segment of the poset of patches.

`First`: ask for an initial segment, first patches first (default for all pull-like commands)

`FirstReversed`: ask for an initial segment, last patches first (used to ask about dependencies in record, and for pull-like commands with the `--reverse` flag).

`LastReversed`: ask for a final segment, last patches first. (default for unpull-like commands, except for selecting *primitive* patches in rollback)

`Last`: ask for a final segment, first patches first. (used for selecting primitive patches in rollback, and for unpull-like commands with the `--reverse` flag

Constructors

Last |
LastReversed |
First |
FirstReversed |

Instances

Eq WhichChanges |
Show WhichChanges |

viewChanges :: Patchy p => [DarcsFlag] -> [Sealed2 p] -> IO ()

The equivalent of `selectChanges` for the `darcs changes` command

withSelectedPatchFromRepo :: forall p. RepoPatch p => String -> Repository p -> [DarcsFlag] -> ((FL (PatchInfoAnd p) :> PatchInfoAnd p) -> IO ()) -> IO ()

The function for selecting a patch to amend record. Read at your own risks.

filterOutConflicts

Arguments

:: RepoPatch p |
=> [DarcsFlag] | Command-line options. Only `SkipConflicts` is significant; filtering will happen iff it is present
-> RL (PatchInfoAnd p) | Recorded patches from repository, starting from same context as the patches to filter
-> Repository p | Repository itself, used for grabbing unrecorded changes
-> FL (PatchInfoAnd p) | Patches to filter
-> IO (Bool, Sealed (FL (PatchInfoAnd p))) | (True iff any patches were removed, possibly filtered patches)

Optionally remove any patches (+dependencies) from a sequence that conflict with the recorded or unrecorded changes in a repo

runSelection :: Patchy p => PatchSelection p -> PatchSelectionContext p -> IO (FL p :> FL p)

runs a `PatchSelection` action in the given `PatchSelectionContext`.

selectionContextPrim :: String -> [DarcsFlag] -> Maybe (Splitter Prim) -> [FilePath] -> PatchSelectionContext Prim

A `PatchSelectionContext` for selecting `Prim` patches.

selectionContext :: RepoPatch p => String -> [DarcsFlag] -> Maybe (Splitter (PatchInfoAnd p)) -> [FilePath] -> PatchSelectionContext (PatchInfoAnd p)

A `PatchSelectionContext` for selecting full patches (`PatchInfoAnd` patches)