Hook-sensitive wrappers for libsvn_fs

routines. More...

Modules

 repository lock wrappers

Functions

svn_error_tsvn_repos_fs_commit_txn (const char **conflict_p, svn_repos_t *repos, svn_revnum_t *new_rev, svn_fs_txn_t *txn, apr_pool_t *pool)
 Like svn_fs_commit_txn(), but invoke the repos's pre- and post-commit hooks around the commit.
svn_error_tsvn_repos_fs_begin_txn_for_commit (svn_fs_txn_t **txn_p, svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *log_msg, apr_pool_t *pool)
 Like svn_fs_begin_txn(), but use author and log_msg to set the corresponding properties on transaction *txn_p.
svn_error_tsvn_repos_fs_begin_txn_for_update (svn_fs_txn_t **txn_p, svn_repos_t *repos, svn_revnum_t rev, const char *author, apr_pool_t *pool)
 Like svn_fs_begin_txn(), but use author to set the corresponding property on transaction *txn_p.
svn_error_tsvn_repos_fs_change_rev_prop2 (svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *name, const svn_string_t *new_value, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool)
 Like svn_fs_change_rev_prop(), but invoke the repos's pre- and post-revprop-change hooks around the change.
svn_error_tsvn_repos_fs_change_rev_prop (svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *name, const svn_string_t *new_value, apr_pool_t *pool)
 Similar to svn_repos_fs_change_rev_prop2(), but with the authz_read_func parameter always NULL.
svn_error_tsvn_repos_fs_revision_prop (svn_string_t **value_p, svn_repos_t *repos, svn_revnum_t rev, const char *propname, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool)
 Set *value_p to the value of the property named propname on revision rev in the filesystem opened in repos.
svn_error_tsvn_repos_fs_revision_proplist (apr_hash_t **table_p, svn_repos_t *repos, svn_revnum_t rev, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool)
 Set *table_p to the entire property list of revision rev in filesystem opened in repos, as a hash table allocated in pool.
svn_error_tsvn_repos_fs_change_node_prop (svn_fs_root_t *root, const char *path, const char *name, const svn_string_t *value, apr_pool_t *pool)
 Validating wrapper for svn_fs_change_node_prop() (which see for argument descriptions).
svn_error_tsvn_repos_fs_change_txn_prop (svn_fs_txn_t *txn, const char *name, const svn_string_t *value, apr_pool_t *pool)
 Validating wrapper for svn_fs_change_txn_prop() (which see for argument descriptions).

Detailed Description

routines.


Function Documentation

svn_error_t* svn_repos_fs_begin_txn_for_commit ( svn_fs_txn_t **  txn_p,
svn_repos_t repos,
svn_revnum_t  rev,
const char *  author,
const char *  log_msg,
apr_pool_t *  pool 
)

Like svn_fs_begin_txn(), but use author and log_msg to set the corresponding properties on transaction *txn_p.

repos is the repository object which contains the filesystem. rev, *txn_p, and pool are as in svn_fs_begin_txn().

Before a txn is created, the repository's start-commit hooks are run; if any of them fail, no txn is created, *txn_p is unaffected, and SVN_ERR_REPOS_HOOK_FAILURE is returned.

log_msg may be NULL to indicate the message is not (yet) available. The caller will need to attach it to the transaction at a later time.

svn_error_t* svn_repos_fs_begin_txn_for_update ( svn_fs_txn_t **  txn_p,
svn_repos_t repos,
svn_revnum_t  rev,
const char *  author,
apr_pool_t *  pool 
)

Like svn_fs_begin_txn(), but use author to set the corresponding property on transaction *txn_p.

repos is the repository object which contains the filesystem. rev, *txn_p, and pool are as in svn_fs_begin_txn().

### Someday: before a txn is created, some kind of read-hook could be called here.

svn_error_t* svn_repos_fs_change_rev_prop ( svn_repos_t repos,
svn_revnum_t  rev,
const char *  author,
const char *  name,
const svn_string_t new_value,
apr_pool_t *  pool 
)

Similar to svn_repos_fs_change_rev_prop2(), but with the authz_read_func parameter always NULL.

Deprecated:
Provided for backward compatibility with the 1.0 API.

svn_error_t* svn_repos_fs_change_rev_prop2 ( svn_repos_t repos,
svn_revnum_t  rev,
const char *  author,
const char *  name,
const svn_string_t new_value,
svn_repos_authz_func_t  authz_read_func,
void *  authz_read_baton,
apr_pool_t *  pool 
)

Like svn_fs_change_rev_prop(), but invoke the repos's pre- and post-revprop-change hooks around the change.

Use pool for temporary allocations.

rev is the revision whose property to change, name is the name of the property, and new_value is the new value of the property. author is the authenticated username of the person changing the property value, or null if not available.

If authz_read_func is non-NULL, then use it (with authz_read_baton) to validate the changed-paths associated with rev. If the revision contains any unreadable changed paths, then return SVN_ERR_AUTHZ_UNREADABLE.

Since:
New in 1.1.

svn_error_t* svn_repos_fs_commit_txn ( const char **  conflict_p,
svn_repos_t repos,
svn_revnum_t new_rev,
svn_fs_txn_t txn,
apr_pool_t *  pool 
)

Like svn_fs_commit_txn(), but invoke the repos's pre- and post-commit hooks around the commit.

Use pool for any necessary allocations.

If the pre-commit hook or svn_fs_commit_txn() fails, throw the original error to caller. If an error occurs when running the post-commit hook, return the original error wrapped with SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED. If the caller sees this error, it knows that the commit succeeded anyway.

conflict_p, new_rev, and txn are as in svn_fs_commit_txn().

svn_error_t* svn_repos_fs_revision_prop ( svn_string_t **  value_p,
svn_repos_t repos,
svn_revnum_t  rev,
const char *  propname,
svn_repos_authz_func_t  authz_read_func,
void *  authz_read_baton,
apr_pool_t *  pool 
)

Set *value_p to the value of the property named propname on revision rev in the filesystem opened in repos.

If rev has no property by that name, set *value_p to zero. Allocate the result in pool.

If authz_read_func is non-NULL, then use it (with authz_read_baton) to validate the changed-paths associated with rev. If the changed-paths are all unreadable, then set *value_p to zero unconditionally. If only some of the changed-paths are unreadable, then allow 'svn:author' and 'svn:date' propvalues to be fetched, but return 0 for any other property.

Since:
New in 1.1.

svn_error_t* svn_repos_fs_revision_proplist ( apr_hash_t **  table_p,
svn_repos_t repos,
svn_revnum_t  rev,
svn_repos_authz_func_t  authz_read_func,
void *  authz_read_baton,
apr_pool_t *  pool 
)

Set *table_p to the entire property list of revision rev in filesystem opened in repos, as a hash table allocated in pool.

The table maps char * property names to svn_string_t * values; the names and values are allocated in pool.

If authz_read_func is non-NULL, then use it (with authz_read_baton) to validate the changed-paths associated with rev. If the changed-paths are all unreadable, then return an empty hash. If only some of the changed-paths are unreadable, then return an empty hash, except for 'svn:author' and 'svn:date' properties (assuming those properties exist).

Since:
New in 1.1.


Generated on Wed Mar 23 23:29:30 2011 for Subversion by  doxygen 1.5.5