Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data RepoJob a
- = RepoJob (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree) => Repository p wR wU wR -> IO a)
- | V1Job (forall wR wU. Repository (Patch Prim) wR wU wR -> IO a)
- | V2Job (forall wR wU. Repository (RealPatch Prim) wR wU wR -> IO a)
- | PrimV1Job (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, PrimOf p ~ Prim) => Repository p wR wU wR -> IO a)
- | RebaseAwareJob Compression Verbosity UpdateWorking (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree, PrimOf (Named p) ~ PrimOf p) => Repository p wR wU wR -> IO a)
- | RebaseJob Compression Verbosity UpdateWorking (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree, PrimOf (Named p) ~ PrimOf p) => Repository (Rebasing p) wR wU wR -> IO a)
- | StartRebaseJob Compression Verbosity UpdateWorking (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree, PrimOf (Named p) ~ PrimOf p) => Repository (Rebasing p) wR wU wR -> IO a)
- withRepoLock :: DryRun -> UseCache -> UpdateWorking -> UMask -> RepoJob a -> IO a
- withRepoLockCanFail :: UseCache -> UpdateWorking -> UMask -> RepoJob () -> IO ()
- withRepository :: UseCache -> RepoJob a -> IO a
- withRepositoryDirectory :: UseCache -> String -> RepoJob a -> IO a
Documentation
A RepoJob
wraps up an action to be performed with a repository. Because repositories
can contain different types of patches, such actions typically need to be polymorphic
in the kind of patch they work on. RepoJob
is used to wrap up the polymorphism,
and the various functions that act on a RepoJob
are responsible for instantiating
the underlying action with the appropriate patch type.
RepoJob (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree) => Repository p wR wU wR -> IO a) | The most common |
V1Job (forall wR wU. Repository (Patch Prim) wR wU wR -> IO a) | A job that only works on darcs 1 patches |
V2Job (forall wR wU. Repository (RealPatch Prim) wR wU wR -> IO a) | A job that only works on darcs 2 patches |
PrimV1Job (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, PrimOf p ~ Prim) => Repository p wR wU wR -> IO a) | A job that works on any repository where the patch type This was added to support darcsden, which inspects the internals of V1 prim patches. In future this should be replaced with a more abstract inspection API as part of |
RebaseAwareJob Compression Verbosity UpdateWorking (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree, PrimOf (Named p) ~ PrimOf p) => Repository p wR wU wR -> IO a) | |
RebaseJob Compression Verbosity UpdateWorking (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree, PrimOf (Named p) ~ PrimOf p) => Repository (Rebasing p) wR wU wR -> IO a) | |
StartRebaseJob Compression Verbosity UpdateWorking (forall p wR wU. (RepoPatch p, ApplyState p ~ Tree, ApplyState (PrimOf p) ~ Tree, PrimOf (Named p) ~ PrimOf p) => Repository (Rebasing p) wR wU wR -> IO a) |
withRepoLock :: DryRun -> UseCache -> UpdateWorking -> UMask -> RepoJob a -> IO a Source
apply a given RepoJob to a repository in the current working directory, taking a lock
withRepoLockCanFail :: UseCache -> UpdateWorking -> UMask -> RepoJob () -> IO () Source
apply a given RepoJob to a repository in the current working directory, taking a lock. If lock not takeable, do nothing.
withRepository :: UseCache -> RepoJob a -> IO a Source
apply a given RepoJob to a repository in the current working directory