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

Safe Haskell | None
Language | Haskell2010

Darcs.Patch.Rebase.Name

Synopsis

- data RebaseName p wX wY where
  - 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
- commutePrimName :: PrimPatchBase p => (PrimOf p :> RebaseName p) wX wY -> (RebaseName p :> PrimOf p) wX wY
- commuteNameNamed :: Invert p => CommuteFn (RebaseName p) (Named p)
- commuteNamedName :: Invert p => CommuteFn (Named p) (RebaseName p)
- canonizeNamePair :: (RebaseName p :> RebaseName p) wX wY -> FL (RebaseName p) wX wY

# 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 |

Instances

Show2 (RebaseName p) # |
Methods showDict2 :: ShowDict (RebaseName p wX wY) #
MyEq (RebaseName p) # |
Methods unsafeCompare :: RebaseName p wA wB -> RebaseName p wC wD -> Bool # (=\/=) :: RebaseName p wA wB -> RebaseName p wA wC -> EqCheck wB wC # (=/\=) :: RebaseName p wA wC -> RebaseName p wB wC -> EqCheck wA wB #
Commute (RebaseName p) # |
Methods commute :: (RebaseName p :> RebaseName p) wX wY -> Maybe ((RebaseName p :> RebaseName p) wX wY) #
PatchInspect (RebaseName p) # |
Methods listTouchedFiles :: RebaseName p wX wY -> [FilePath] # hunkMatches :: (ByteString -> Bool) -> RebaseName p wX wY -> Bool #
Invert (RebaseName p) # |
Methods invert :: RebaseName p wX wY -> RebaseName p wY wX #
ReadPatch (RebaseName p) # |
Methods readPatch' :: ParserM m => m (Sealed (RebaseName p wX)) #
Apply p => Apply (RebaseName p) # |
Associated Types type ApplyState (RebaseName p :: * -> * -> *) :: (* -> *) -> * # Methods apply :: ApplyMonad (ApplyState (RebaseName p)) m => RebaseName p wX wY -> m () #
ShowPatch (RebaseName p) # |
Methods showNicely :: RebaseName p wX wY -> Doc # showContextPatch :: (Monad m, ApplyMonad (ApplyState (RebaseName p)) m) => RebaseName p wX wY -> m Doc # description :: RebaseName p wX wY -> Doc # summary :: RebaseName p wX wY -> Doc # summaryFL :: FL (RebaseName p) wX wY -> Doc # thing :: RebaseName p wX wY -> String # things :: RebaseName p wX wY -> String #
ShowPatchBasic (RebaseName p) # |
Methods showPatch :: RebaseName p wX wY -> Doc #
Apply p => Patchy (RebaseName p) # |
PrimPatchBase p => PrimPatchBase (RebaseName p) # |
Associated Types type PrimOf (RebaseName p :: * -> * -> *) :: * -> * -> * #
Effect (RebaseName p) # |
Methods effect :: RebaseName p wX wY -> FL (PrimOf (RebaseName p)) wX wY # effectRL :: RebaseName p wX wY -> RL (PrimOf (RebaseName p)) wX wY #
Show1 (RebaseName p wX) # |
Methods showDict1 :: ShowDict (RebaseName p wX wX) #
Show (RebaseName p wX wY) # |
Methods showsPrec :: Int -> RebaseName p wX wY -> ShowS # show :: RebaseName p wX wY -> String # showList :: [RebaseName p wX wY] -> ShowS #
type ApplyState (RebaseName p) # |
type ApplyState (RebaseName p) = ApplyState p
type PrimOf (RebaseName p) # |
type PrimOf (RebaseName p) = PrimOf p

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.

canonizeNamePair :: (RebaseName p :> RebaseName p) wX wY -> FL (RebaseName p) wX wY #