darcs-2.18.5: a distributed, interactive, smart revision control system
Safe HaskellNone
LanguageHaskell2010

Darcs.Patch.Rebase.Name

Synopsis

Documentation

data RebaseName wX wY where Source #

A RebaseName encapsulates the concept of the name of a patch, without any contents. This allows us to track explicit dependencies in the rebase state, changing them to follow uses of amend-record or unsuspend on a depended-on patch, and warning the user if any are lost entirely.

Constructors

AddName :: forall wX wY. PatchInfo -> RebaseName wX wY 
DelName :: forall wX wY. PatchInfo -> RebaseName wX wY 
Rename :: forall wX wY. PatchInfo -> PatchInfo -> RebaseName wX wY 

Instances

Instances details
Commute RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

PatchInspect RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

listTouchedFiles :: RebaseName wX wY -> [AnchoredPath] Source #

hunkMatches :: (ByteString -> Bool) -> RebaseName wX wY -> Bool Source #

Invert RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

invert :: RebaseName wX wY -> RebaseName wY wX Source #

ReadPatch RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

ShowPatch RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

ShowPatchBasic RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Eq2 RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

unsafeCompare :: RebaseName wA wB -> RebaseName wC wD -> Bool Source #

(=\/=) :: RebaseName wA wB -> RebaseName wA wC -> EqCheck wB wC Source #

(=/\=) :: RebaseName wA wC -> RebaseName wB wC -> EqCheck wA wB Source #

Show2 RebaseName Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

showDict2 :: ShowDict (RebaseName wX wY) Source #

Show1 (RebaseName wX) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

showDict1 :: Dict (Show (RebaseName wX wX0)) Source #

Show (RebaseName wX wY) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

showsPrec :: Int -> RebaseName wX wY -> ShowS #

show :: RebaseName wX wY -> String #

showList :: [RebaseName wX wY] -> ShowS #

Eq (RebaseName wX wY) Source # 
Instance details

Defined in Darcs.Patch.Rebase.Name

Methods

(==) :: RebaseName wX wY -> RebaseName wX wY -> Bool #

(/=) :: RebaseName wX wY -> RebaseName wX wY -> Bool #

commuteNamePrim :: forall (prim :: Type -> Type -> Type) wX wY. (RebaseName :> prim) wX wY -> (prim :> RebaseName) wX wY Source #

Commute a RebaseName and a primitive patch. They trivially commute so this just involves changing the witnesses. This is unsafe if the patch being commuted actually has a name (e.g. Named or PatchInfo - PrimWithName is ok),

commutePrimName :: forall (prim :: Type -> Type -> Type) wX wY. (prim :> RebaseName) wX wY -> (RebaseName :> prim) wX wY Source #

Commute a primitive patch and a RebaseName. They trivially commute so this just involves changing the witnesses. This is unsafe if the patch being commuted actually has a name (e.g. Named or PatchInfo - PrimWithName is ok),

commuterIdNamed :: forall (p1 :: Type -> Type -> Type) (p2 :: Type -> Type -> Type). CommuteFn p1 p2 -> CommuteFn p1 (Named p2) Source #

Commute an unnamed patch with a named patch. This is unsafe if the second patch actually does have a name (e.g. Named, PatchInfoAnd, etc), as it won't check the explicit dependencies.

commuterNamedId :: forall (p1 :: Type -> Type -> Type) (p2 :: Type -> Type -> Type). CommuteFn p1 p2 -> CommuteFn (Named p1) p2 Source #

Commute an unnamed patch with a named patch. This is unsafe if the first patch actually does have a name (e.g. Named, PatchInfoAnd, etc), as it won't check the explicit dependencies.

commuteNameNamed :: forall (p :: Type -> Type -> Type) wX wY. (RebaseName :> Named p) wX wY -> Maybe ((Named p :> RebaseName) wX wY) Source #

Commute a name patch and a named patch. In most cases this is trivial but we do need to check explicit dependencies.

commuteNamedName :: forall (p :: Type -> Type -> Type) wX wY. (Named p :> RebaseName) wX wY -> Maybe ((RebaseName :> Named p) wX wY) Source #

Commute a named patch and a name patch. In most cases this is trivial but we do need to check explicit dependencies.