darcs-2.18.3: a distributed, interactive, smart revision control system
Safe HaskellSafe-Inferred
LanguageHaskell2010

Darcs.Patch.Rebase.Suspended

Synopsis

Documentation

data Suspended p wX where Source #

A Suspended patch contains the entire rebase state, in the form of RebaseChanges. The end state is existientially quantified and thus hidden.

Constructors

Items :: FL (RebaseChange (PrimOf p)) wX wY -> Suspended p wX 

Instances

Instances details
(Show2 p, Show2 (PrimOf p)) => Show (Suspended p wX) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

Methods

showsPrec :: Int -> Suspended p wX -> ShowS #

show :: Suspended p wX -> String #

showList :: [Suspended p wX] -> ShowS #

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.

readSuspended :: forall p wX. RepoPatch p => Parser (Suspended p wX) Source #