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

Safe HaskellNone
LanguageHaskell2010

Darcs.Patch.Rebase.Suspended

Synopsis

Documentation

data Suspended p wX wY where Source #

A single Suspended patch contains the entire rebase state, in the form of RebaseItems.

The witnesses are such that a Suspended appears to have no effect. This behaviour is only kept so we can read old-style rebase patches, where the entire rebase state was kept in a single patch on disk.

Constructors

Items :: FL (RebaseChange (PrimOf p)) wX wY -> Suspended p wX wX 
Instances
(Show2 p, Show2 (PrimOf p)) => Show2 (Suspended p) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

Methods

showDict2 :: ShowDict (Suspended p wX wY) Source #

(PrimPatchBase p, PatchInspect p) => PatchInspect (Suspended p) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

(PrimPatchBase p, PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (Suspended p) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

Methods

showPatch :: ShowPatchFor -> Suspended p wX wY -> Doc Source #

(PrimPatchBase p, PatchListFormat p, ReadPatch p, RepoPatch p) => ReadPatch (Suspended p) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Suspended

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

Defined in Darcs.Patch.Rebase.Suspended

Methods

showDict1 :: Dict (Show (Suspended p wX wX0)) Source #

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

Defined in Darcs.Patch.Rebase.Suspended

Methods

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

show :: Suspended p wX wY -> String #

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

addFixupsToSuspended :: (PrimPatchBase p, Commute p, FromPrim p, Effect p) => Named p wX wY -> Suspended p wY wY -> Suspended p wX wX Source #

add fixups for the name and effect of a patch to a Suspended

removeFixupsFromSuspended :: (PrimPatchBase p, Commute p, FromPrim p, Effect p) => Named p wX wY -> Suspended p wX wX -> Suspended p wY 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 wY -> IO (Suspended p wX 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.