filestore-0.6.3.5: Interface for versioning file stores.

CopyrightCopyright (C) 2009 John MacFarlane Gwern Branwen Sebastiaan Visser
LicenseBSD 3
MaintainerJohn MacFarlane <jgm@berkeley.edu>
Stabilityalpha
PortabilityGHC 6.10 required
Safe HaskellSafe
LanguageHaskell98

Data.FileStore.Generic

Description

Generic utility functions for working with filestores.

Synopsis

Documentation

modify Source #

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.

create Source #

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.

type Diff a = PolyDiff a a #

This is PolyDiff specialized so both sides are the same type.

diff Source #

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 [Diff [String]] 

Return a unified diff of two revisions of a named resource. Format of the diff is a list [(Diff, [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).

searchRevisions Source #

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.

smartRetrieve Source #

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.