| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Darcs.Repository.Job
- 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.
Constructors
| 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