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

Darcs.Match

Synopsis

- matchFirstPatchset :: RepoPatch p => [DarcsFlag] -> PatchSet p -> SealedPatchSet p
- matchSecondPatchset :: RepoPatch p => [DarcsFlag] -> PatchSet p -> SealedPatchSet p
- matchPatch :: RepoPatch p => [DarcsFlag] -> PatchSet p -> Sealed2 (Named p)
- matchAPatch :: Patchy p => [DarcsFlag] -> Named p -> Bool
- matchAPatchread :: Patchy p => [DarcsFlag] -> PatchInfoAnd p -> Bool
- getFirstMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> IO ()
- getNonrangeMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> IO ()
- getPartialFirstMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> [FileName] -> IO ()
- getPartialSecondMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> [FileName] -> IO ()
- getPartialNonrangeMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> [FileName] -> IO ()
- firstMatch :: [DarcsFlag] -> Bool
- secondMatch :: [DarcsFlag] -> Bool
- haveNonrangeMatch :: [DarcsFlag] -> Bool
- havePatchsetMatch :: [DarcsFlag] -> Bool
- getOnePatchset :: RepoPatch p => Repository p -> [DarcsFlag] -> IO (SealedPatchSet p)
- checkMatchSyntax :: [DarcsFlag] -> IO ()
- applyInvToMatcher :: (RepoPatch p, WriteableDirectory m) => InclusiveOrExclusive -> Matcher p -> PatchSet p -> m ()
- nonrangeMatcher :: Patchy p => [DarcsFlag] -> Maybe (Matcher p)
- data InclusiveOrExclusive
  - = Inclusive
  - | Exclusive
- matchExists :: Matcher p -> PatchSet p -> Bool

# Documentation

matchFirstPatchset :: RepoPatch p => [DarcsFlag] -> PatchSet p -> SealedPatchSet p

`matchFirstPatchset fs ps` returns the part of `ps` before its first matcher, ie the one that comes first dependencywise. Hence, patches in `matchFirstPatchset fs ps` are the ones we don't want.

Question: are they really? Florent

matchSecondPatchset :: RepoPatch p => [DarcsFlag] -> PatchSet p -> SealedPatchSet p

`matchSecondPatchset fs ps` returns the part of `ps` before its second matcher, ie the one that comes last dependencywise.

matchPatch :: RepoPatch p => [DarcsFlag] -> PatchSet p -> Sealed2 (Named p)

matchAPatch :: Patchy p => [DarcsFlag] -> Named p -> Bool

`matchAPatch fs p` tells whether `p` matches the matchers in the flags `fs`

matchAPatchread :: Patchy p => [DarcsFlag] -> PatchInfoAnd p -> Bool

`matchAPatchread fs p` tells whether `p` matches the matchers in the flags listed in `fs`.

getFirstMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> IO ()

getNonrangeMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> IO ()

getPartialFirstMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> [FileName] -> IO ()

getPartialSecondMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> [FileName] -> IO ()

getPartialNonrangeMatch :: RepoPatch p => Repository p -> [DarcsFlag] -> [FileName] -> IO ()

firstMatch :: [DarcsFlag] -> Bool

`firstMatch fs` tells whether `fs` implies a first match, that is if we match against patches from a point in the past on, rather than against all patches since the creation of the repository.

secondMatch :: [DarcsFlag] -> Bool

`secondMatch fs` tells whether `fs` implies a second match, that is if we match against patches up to a point in the past on, rather than against all patches until now.

haveNonrangeMatch :: [DarcsFlag] -> Bool

`haveNonrangeMatch flags` tells whether there is a flag in `flags` which corresponds to a match that is non-range. Thus, `--match`, `--patch` and `--index` make `haveNonrangeMatch` true, but not `--from-patch` or `--to-patch`.

havePatchsetMatch :: [DarcsFlag] -> Bool

`havePatchsetMatch flags` tells whether there is a patchset match in the flag list. A patchset match is `--match` or `--patch`, or `--context`, but not `--from-patch` nor (!) `--index`. Question: Is it supposed not to be a subset of `haveNonrangeMatch`?

getOnePatchset :: RepoPatch p => Repository p -> [DarcsFlag] -> IO (SealedPatchSet p)

checkMatchSyntax :: [DarcsFlag] -> IO ()

applyInvToMatcher :: (RepoPatch p, WriteableDirectory m) => InclusiveOrExclusive -> Matcher p -> PatchSet p -> m ()

nonrangeMatcher :: Patchy p => [DarcsFlag] -> Maybe (Matcher p)

`nonrangeMatcher` is the criterion that is used to match against patches in the interval. It is 'Just m' when the `--patch`, `--match`, `--tag` options are passed (or their plural variants).

data InclusiveOrExclusive

Constructors

Inclusive |
Exclusive |

Instances

Eq InclusiveOrExclusive |

matchExists :: Matcher p -> PatchSet p -> Bool

`matchExists m ps` tells whether there is a patch matching `m` in `ps`