Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A few darcs-specific utility functions. These are used for reading and writing darcs and darcs-compatible hashed trees.
Synopsis
- readDarcsHashed :: Cache -> PristineHash -> IO (Tree IO)
- writeDarcsHashed :: Tree IO -> Cache -> IO PristineHash
- hashedTreeIO :: TreeIO a -> Tree IO -> Cache -> IO (a, Tree IO)
- readDarcsHashedNosize :: Cache -> PristineHash -> IO (Tree IO)
- darcsAddMissingHashes :: Monad m => Tree m -> m (Tree m)
- darcsTreeHash :: Tree m -> Hash
- darcsUpdateHashes :: Monad m => Tree m -> m (Tree m)
- followPristineHashes :: Cache -> [PristineHash] -> IO [PristineHash]
Obtaining Trees.
Please note that Trees obtained this way will contain Stub
items. These need to be executed (they are IO actions) in order to be
accessed. Use expand
to do this. However, many operations are
perfectly fine to be used on a stubbed Tree (and it is often more
efficient to do everything that can be done before expanding a Tree).
readDarcsHashed :: Cache -> PristineHash -> IO (Tree IO) Source #
Writing trees.
writeDarcsHashed :: Tree IO -> Cache -> IO PristineHash Source #
Write a Tree into a darcs-style hashed directory.
Interact with hashed tree
Run a TreeIO
action
in a hashed setting. Any changes will be written
out to the cache. Please note that actual filesystem files are never removed.
Other
readDarcsHashedNosize :: Cache -> PristineHash -> IO (Tree IO) Source #
darcsTreeHash :: Tree m -> Hash Source #
Compute a darcs-compatible hash value for a tree-like structure.
followPristineHashes :: Cache -> [PristineHash] -> IO [PristineHash] Source #
Return all PristineHash
es reachable from the given root set, which must
consist of directory hashes only.