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

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.

Write a Tree into a darcs-style hashed directory.

# Interact with hashed tree

Arguments

 :: TreeIO a action -> Tree IO initial -> FilePath directory -> IO (a, Tree IO)

Run a TreeIO action in a hashed setting. The initial tree is assumed to be fully available from the directory, and any changes will be written out to same. Please note that actual filesystem files are never removed.

# Other

readDarcsHashedDir :: FilePath -> (Maybe Int, Hash) -> IO [(ItemType, Name, Maybe Int, Hash)] Source #

Read and parse a darcs-style hashed directory listing from a given dir and with a given hash.

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