darcs-2.18.3: a distributed, interactive, smart revision control system
Safe HaskellSafe-Inferred
LanguageHaskell2010

Darcs.Util.Tree.Hashed

Description

A few darcs-specific utility functions. These are used for reading and writing darcs and darcs-compatible hashed trees.

Synopsis

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).

Writing trees.

writeDarcsHashed :: Tree IO -> Cache -> IO PristineHash Source #

Write a Tree into a darcs-style hashed directory.

Interact with hashed tree

hashedTreeIO Source #

Arguments

:: TreeIO a

action

-> Tree IO

initial

-> Cache 
-> IO (a, Tree IO) 

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

darcsTreeHash :: Tree m -> Hash Source #

Compute a darcs-compatible hash value for a tree-like structure.

followPristineHashes :: Cache -> [PristineHash] -> IO [PristineHash] Source #

Return all PristineHashes reachable from the given root set, which must consist of directory hashes only.