| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Darcs.Patch.Depends
- getUncovered :: PatchSet rt p wStart wX -> [PatchInfo]
- areUnrelatedRepos :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> Bool
- findCommonAndUncommon :: forall rt p wStart wX wY. Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> Fork (PatchSet rt p) (FL (PatchInfoAnd rt p)) (FL (PatchInfoAnd rt p)) wStart wX wY
- mergeThem :: (Patchy p, Merge p) => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> Sealed (FL (PatchInfoAnd rt p) wX)
- findCommonWithThem :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> (PatchSet rt p :> FL (PatchInfoAnd rt p)) wStart wX
- countUsThem :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> (Int, Int)
- removeFromPatchSet :: Patchy p => FL (PatchInfoAnd rt p) wX wY -> PatchSet rt p wStart wY -> Maybe (PatchSet rt p wStart wX)
- slightlyOptimizePatchset :: PatchSet rt p wStart wX -> PatchSet rt p wStart wX
- getPatchesBeyondTag :: Patchy p => PatchInfo -> PatchSet rt p wStart wX -> FlippedSeal (RL (PatchInfoAnd rt p)) wX
- splitOnTag :: Patchy p => PatchInfo -> PatchSet rt p wStart wX -> Maybe ((PatchSet rt p :> RL (PatchInfoAnd rt p)) wStart wX)
- newsetUnion :: (Patchy p, Merge p) => [SealedPatchSet rt p wStart] -> SealedPatchSet rt p wStart
- newsetIntersection :: Patchy p => [SealedPatchSet rt p wStart] -> SealedPatchSet rt p wStart
- findUncommon :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> (FL (PatchInfoAnd rt p) :\/: FL (PatchInfoAnd rt p)) wX wY
- merge2FL :: (Patchy p, Merge p) => FL (PatchInfoAnd rt p) wX wY -> FL (PatchInfoAnd rt p) wX wZ -> (FL (PatchInfoAnd rt p) :/\: FL (PatchInfoAnd rt p)) wY wZ
- getDeps :: (RepoPatch p, ApplyState p ~ Tree) => FL (Named p) wA wR -> FL (PatchInfoAnd rt p) wX wY -> [SPatchAndDeps p]
- type SPatchAndDeps p = (Sealed2 (LabelledPatch (Named p)), Sealed2 (FL (LabelledPatch (Named p))))
Documentation
getUncovered :: PatchSet rt p wStart wX -> [PatchInfo] Source #
getUncovered ps returns the PatchInfo for all the patches in
ps that are not depended on by anything else *through explicit
dependencies*. Tags are a likely candidate, although we may also
find some non-tag patches in this list.
Keep in mind that in a typical repository with a lot of tags, only a small fraction of tags would be returned as they would be at least indirectly depended on by the topmost ones.
areUnrelatedRepos :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> Bool Source #
findCommonAndUncommon :: forall rt p wStart wX wY. Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> Fork (PatchSet rt p) (FL (PatchInfoAnd rt p)) (FL (PatchInfoAnd rt p)) wStart wX wY Source #
mergeThem :: (Patchy p, Merge p) => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> Sealed (FL (PatchInfoAnd rt p) wX) Source #
findCommonWithThem :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> (PatchSet rt p :> FL (PatchInfoAnd rt p)) wStart wX Source #
countUsThem :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> (Int, Int) Source #
removeFromPatchSet :: Patchy p => FL (PatchInfoAnd rt p) wX wY -> PatchSet rt p wStart wY -> Maybe (PatchSet rt p wStart wX) Source #
slightlyOptimizePatchset :: PatchSet rt p wStart wX -> PatchSet rt p wStart wX Source #
slightlyOptimizePatchset only works on the surface inventory
(see optimizePatchset) and only optimises at most one tag in
there, going for the most recent tag which has no non-depended
patch after it. Older tags won't be clean, which means the
PatchSet will not be in 'clean :> unclean' state.
getPatchesBeyondTag :: Patchy p => PatchInfo -> PatchSet rt p wStart wX -> FlippedSeal (RL (PatchInfoAnd rt p)) wX Source #
splitOnTag :: Patchy p => PatchInfo -> PatchSet rt p wStart wX -> Maybe ((PatchSet rt p :> RL (PatchInfoAnd rt p)) wStart wX) Source #
newsetUnion :: (Patchy p, Merge p) => [SealedPatchSet rt p wStart] -> SealedPatchSet rt p wStart Source #
newsetIntersection :: Patchy p => [SealedPatchSet rt p wStart] -> SealedPatchSet rt p wStart Source #
findUncommon :: Patchy p => PatchSet rt p wStart wX -> PatchSet rt p wStart wY -> (FL (PatchInfoAnd rt p) :\/: FL (PatchInfoAnd rt p)) wX wY Source #
merge2FL :: (Patchy p, Merge p) => FL (PatchInfoAnd rt p) wX wY -> FL (PatchInfoAnd rt p) wX wZ -> (FL (PatchInfoAnd rt p) :/\: FL (PatchInfoAnd rt p)) wY wZ Source #
Merge two FLs (say L and R), starting in a common context. The result is a FL starting in the original end context of L, going to a new context that is the result of applying all patches from R on top of patches from L.
While this function is similar to mergeFL, there are some important
differences to keep in mind:
mergeFLdoes not correctly deal with duplicate patches whereas this one does (Question from Eric Kow: in what sense? Why not fixmergeFL?) (bf: I guess what was meant here is thatmerge2FLworks in the the way it does because it considers patch meta data whereasmergeFLcannot since it must work for primitive patches, too.
getDeps :: (RepoPatch p, ApplyState p ~ Tree) => FL (Named p) wA wR -> FL (PatchInfoAnd rt p) wX wY -> [SPatchAndDeps p] Source #
Searchs dependencies in repoFL of the patches in getDepsFL.
type SPatchAndDeps p = (Sealed2 (LabelledPatch (Named p)), Sealed2 (FL (LabelledPatch (Named p)))) Source #
S(ealed) Patch and his dependencies.