filestore-0.5.0.1: Interface for versioning file stores.

PortabilityGHC 6.10 required
Stabilityalpha
MaintainerJohn MacFarlane <jgm@berkeley.edu>
Safe HaskellNone

Data.FileStore.Generic

Description

Generic utility functions for working with filestores.

Synopsis

Documentation

modifySource

Arguments

:: Contents a 
=> FileStore 
-> FilePath

Resource to create.

-> RevisionId

ID of previous revision that is being modified.

-> Author

Author of change.

-> Description

Description of change.

-> a

Contents of resource.

-> IO (Either MergeInfo ()) 

Modify a named resource in the filestore. Like save, except that a revision ID must be specified. If the resource has been modified since the specified revision, Left merge information is returned. Otherwise, Right the new contents are saved.

createSource

Arguments

:: Contents a 
=> FileStore 
-> FilePath

Resource to create.

-> Author

Author of change.

-> Description

Description of change.

-> a

Contents of resource.

-> IO () 

Like save, but first verify that the resource name is new. If not, throws a ResourceExists error.

data DI

Difference Indicator. A value is either from the First list, the Second or from Both.

Constructors

F 
S 
B 

Instances

diffSource

Arguments

:: FileStore 
-> FilePath

Resource name to get diff for.

-> Maybe RevisionId

Just old revision ID, or Nothing for empty.

-> Maybe RevisionId

Just oew revision ID, or Nothing for latest.

-> IO [(DI, [String])] 

Return a unified diff of two revisions of a named resource. Format of the diff is a list [(DI, [String])], where DI is F (in first document only), S (in second only), or B (in both), and the list is a list of lines (without newlines at the end).

searchRevisionsSource

Arguments

:: FileStore 
-> Bool

When true the description must match exactly, when false partial hits are allowed.

-> FilePath

The resource to search history for.

-> Description

Revision description to search for.

-> IO [Revision] 

Return a list of all revisions that are saved with the given description or with a part of this description.

smartRetrieveSource

Arguments

:: Contents a 
=> FileStore 
-> Bool

True for exact description match, False for partial match.

-> FilePath

Resource name to retrieve.

-> Maybe String

Just revision ID or description, or Nothing for empty.

-> IO a 

Try to retrieve a resource from the repository by name and possibly a revision identifier. When retrieving a resource by revision identifier fails this function will try to fetch the latest revision for which the description matches the given string.

richDirectory :: FileStore -> FilePath -> IO [(Resource, Either String Revision)]Source

Like directory, but returns information about the latest revision.