Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Suspended p wX where
- Items :: FL (RebaseChange (PrimOf p)) wX wY -> Suspended p wX
- countToEdit :: Suspended p wX -> Int
- simplifyPush :: PrimPatchBase p => DiffAlgorithm -> RebaseFixup (PrimOf p) wX wY -> Suspended p wY -> Suspended p wX
- simplifyPushes :: PrimPatchBase p => DiffAlgorithm -> FL (RebaseFixup (PrimOf p)) wX wY -> Suspended p wY -> Suspended p wX
- addFixupsToSuspended :: (PrimPatchBase p, Effect p) => Named p wX wY -> Suspended p wY -> Suspended p wX
- removeFixupsFromSuspended :: (PrimPatchBase p, Effect p) => Named p wX wY -> Suspended p wX -> Suspended p wY
- addToEditsToSuspended :: RepoPatch p => DiffAlgorithm -> FL (Named p) wX wY -> Suspended p wY -> IO (Suspended p wX)
- readSuspended :: forall p wX. RepoPatch p => Parser (Suspended p wX)
- showSuspended :: PrimPatchBase p => ShowPatchFor -> Suspended p wX -> Doc
Documentation
data Suspended p wX where Source #
A Suspended
patch contains the entire rebase state, in the form
of RebaseChange
s. The end state is existientially quantified and
thus hidden.
Items :: FL (RebaseChange (PrimOf p)) wX wY -> Suspended p wX |
countToEdit :: Suspended p wX -> Int Source #
simplifyPush :: PrimPatchBase p => DiffAlgorithm -> RebaseFixup (PrimOf p) wX wY -> Suspended p wY -> Suspended p wX Source #
simplifyPushes :: PrimPatchBase p => DiffAlgorithm -> FL (RebaseFixup (PrimOf p)) wX wY -> Suspended p wY -> Suspended p wX Source #
addFixupsToSuspended :: (PrimPatchBase p, Effect p) => Named p wX wY -> Suspended p wY -> Suspended p wX Source #
add fixups for the name and effect of a patch to a Suspended
removeFixupsFromSuspended :: (PrimPatchBase p, Effect p) => Named p wX wY -> Suspended p wX -> Suspended p wY Source #
Remove fixups (actually, add their inverse) for the name and effect of
a patch to a Suspended
.
addToEditsToSuspended :: RepoPatch p => DiffAlgorithm -> FL (Named p) wX wY -> Suspended p wY -> IO (Suspended p wX) Source #
Add Named
patches for editing to a Suspended
. The patches to be
suspended are renamed by replacing the junk in their Patchinfo
.
The reason we rename patches immediately when suspending them is that the user may pull an identical copy from a clone, Which means we have the same patch name twice, once in the normal repo and once suspended. Furthermore, they can again suspend that copy, leaving us with multiple copies of the same patch in the rebase state. This is bad because it invalidates most of the invariants for RebaseName fixups. See issue2445 and tests/rebase-repull.sh for examples which lead to crashes when we don't do the renaming here.
showSuspended :: PrimPatchBase p => ShowPatchFor -> Suspended p wX -> Doc Source #