HsSVN-0.4.3.1: Partial Subversion (SVN) binding for HaskellContentsIndex
Subversion.Repository
Description
An interface to repository, which is built on top of the filesystem.
Synopsis
data Repository
openRepository :: FilePath -> IO Repository
createRepository :: FilePath -> [(String, Config)] -> [(String, String)] -> IO Repository
deleteRepository :: FilePath -> IO ()
getRepositoryFS :: Repository -> IO FileSystem
doReposTxn :: Repository -> RevNum -> String -> Maybe String -> Txn () -> IO (Either FilePath RevNum)
dumpRepository :: Repository -> Maybe RevNum -> Maybe RevNum -> Bool -> Bool -> IO ByteString
Documentation
data Repository
Repository is an opaque object representing a Subversion repository.
openRepository :: FilePath -> IO Repository

openRepository fpath opens a Subversion repository at fpath.

It acquires a shared lock on the repository, and the lock will be removed by the garbage collector. If an exclusive lock is present, this blocks until it's gone.

createRepository
:: FilePathWhere to create the repository.
-> [(String, Config)]A list of (categoryName, config) tuples which represents a client configuration. It may be an empty list.
-> [(String, String)]This list is passed to the filesystem. See createFileSystem.
-> IO Repository
createRepository creates a new Subversion repository, builds a necessary directory structure, creates a filesystem, and so on.
deleteRepository :: FilePath -> IO ()
deleteRepository fpath destroys the Subversion repository at fpath.
getRepositoryFS :: Repository -> IO FileSystem
getRepositoryFS repos returns the filesystem associated with repository repos.
doReposTxn
:: RepositoryThe repository.
-> RevNumAn existing revision number which the transaction bases on.
-> StringThe author name to be recorded as a transaction property.
-> Maybe StringThe log message to be recorded as a transaction property. This value may be Nothing if the message is not yet available. The caller will need to attach one to the transaction later.
-> Txn ()The transaction to be done.
-> IO (Either FilePath RevNum)The result is whether Left conflictPath (if it caused a conflict) or Right newRevNum (if it didn't).

doReposTxn tries to do the transaction. If it succeeds doReposTxn automatically commits it. When it throws an exception, doReposTxn automatically cancels it and rethrows the exception.

Since conflicts tend to occur more frequently than other errors, they aren't reported as an exception.

dumpRepository
:: RepositoryThe repository.
-> Maybe RevNumNothing to start dumping at revision 0, or Just x to begin at revision x.
-> Maybe RevNumNothing to dump through the HEAD revision, or Just x to dump up to the revision x.
-> BoolIf this is True, the first revision dumped will be a diff against the previous revision (usually it looks like a full dump of the tree).
-> BoolIf this is True, output only node properties which have changed relative to the previous contents, and output text contents as svndiff data against the previous contents. Regardless of how this flag is set, the first revision of a non-incremental dump will be done with full plain text. A dump with this flag set cannot be loaded by Subversion 1.0.x.
-> IO ByteString
Lazily dump the contents of the filesystem associated with the given repository. Note that this action requires -threaded RTS.
Produced by Haddock version 2.6.0