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

Safe HaskellNone

Darcs.Patch.Rebase.Name

Synopsis

Documentation

data RebaseName p wX wY where

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 :: PatchInfo -> RebaseName p wX wY 
DelName :: PatchInfo -> RebaseName p wX wY 
Rename :: PatchInfo -> PatchInfo -> RebaseName p wX wY 

commuteNamePrim :: PrimPatchBase p => (RebaseName p :> PrimOf p) wX wY -> (PrimOf p :> RebaseName p) wX wY

Commute a name patch and a primitive patch. They trivially commute so this just involves changing the witnesses.

commutePrimName :: PrimPatchBase p => (PrimOf p :> RebaseName p) wX wY -> (RebaseName p :> PrimOf p) wX wY

Commute a primitive patch and a name patch. They trivially commute so this just involves changing the witnesses.

commuteNameNamed :: Invert p => CommuteFn (RebaseName p) (Named p)

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

commuteNamedName :: Invert p => CommuteFn (Named p) (RebaseName p)

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