Versioned and Unversioned Properties

Prop-changing and prop-reading wrappers for libsvn_fs routines. More...

## Functions

svn_error_t * | svn_repos_fs_change_rev_prop4 (svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *name, const svn_string_t *const *old_value_p, const svn_string_t *new_value, svn_boolean_t use_pre_revprop_change_hook, svn_boolean_t use_post_revprop_change_hook, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool)
| Like svn_fs_change_rev_prop2(), but validate the name and value of the property and invoke the repos's pre- and post-revprop-change hooks around the change as specified by use_pre_revprop_change_hook and use_post_revprop_change_hook (respectively). More...
svn_error_t * | svn_repos_fs_change_rev_prop3 (svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *name, const svn_string_t *new_value, svn_boolean_t use_pre_revprop_change_hook, svn_boolean_t use_post_revprop_change_hook, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool)
| Similar to svn_repos_fs_change_rev_prop4(), but with old_value_p always set to `NULL`. More...
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)
| Similar to svn_repos_fs_change_rev_prop3(), but with the use_pre_revprop_change_hook and use_post_revprop_change_hook always set to `TRUE`. More...
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. More...
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. More...
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. More...
svn_error_t * | svn_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). More...
svn_error_t * | svn_repos_fs_get_inherited_props (apr_array_header_t **inherited_props, svn_fs_root_t *root, const char *path, const char *propname, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Set *inherited_values to a depth-first ordered array of svn_prop_inherited_item_t * structures (the path_or_url members of which are relative filesystem paths) representing the properties inherited by path in root. More...
svn_error_t * | svn_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). More...
svn_error_t * | svn_repos_fs_change_txn_props (svn_fs_txn_t *txn, const apr_array_header_t *props, apr_pool_t *pool)
| Validating wrapper for svn_fs_change_txn_props() (which see for argument descriptions). More...

## Detailed Description

Prop-changing and prop-reading wrappers for libsvn_fs routines.

## Function Documentation

## svn_repos_fs_change_node_prop()

svn_error_t* svn_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).

If name's kind is not svn_prop_regular_kind, return SVN_ERR_REPOS_BAD_ARGS. If name is an "svn:" property, validate its value and return SVN_ERR_BAD_PROPERTY_VALUE if it is invalid for the property.

Note
  Originally, the only properties validated were the "svn:" properties SVN_PROP_REVISION_LOG and SVN_PROP_REVISION_DATE. For the current validation rules see the private function svn_repos__validate_prop().

## svn_repos_fs_change_rev_prop()

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_repos_fs_change_rev_prop2()

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
| ) |  |

Similar to svn_repos_fs_change_rev_prop3(), but with the use_pre_revprop_change_hook and use_post_revprop_change_hook always set to `TRUE`.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

## svn_repos_fs_change_rev_prop3()

svn_error_t* svn_repos_fs_change_rev_prop3 | ( | svn_repos_t * | repos,
|  | svn_revnum_t | rev,
|  | const char * | author,
|  | const char * | name,
|  | const svn_string_t * | new_value,
|  | svn_boolean_t | use_pre_revprop_change_hook,
|  | svn_boolean_t | use_post_revprop_change_hook,
|  | svn_repos_authz_func_t | authz_read_func,
|  | void * | authz_read_baton,
|  | apr_pool_t * | pool
| ) |  |

Similar to svn_repos_fs_change_rev_prop4(), but with old_value_p always set to `NULL`.

(In other words, it is similar to svn_fs_change_rev_prop().)

Deprecated:
  Provided for backward compatibility with the 1.6 API.

Since
  New in 1.5.

## svn_repos_fs_change_rev_prop4()

svn_error_t* svn_repos_fs_change_rev_prop4 | ( | svn_repos_t * | repos,
|  | svn_revnum_t | rev,
|  | const char * | author,
|  | const char * | name,
|  | const svn_string_t *const * | old_value_p,
|  | const svn_string_t * | new_value,
|  | svn_boolean_t | use_pre_revprop_change_hook,
|  | svn_boolean_t | use_post_revprop_change_hook,
|  | svn_repos_authz_func_t | authz_read_func,
|  | void * | authz_read_baton,
|  | apr_pool_t * | pool
| ) |  |

Like svn_fs_change_rev_prop2(), but validate the name and value of the property and invoke the repos's pre- and post-revprop-change hooks around the change as specified by use_pre_revprop_change_hook and use_post_revprop_change_hook (respectively).

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. If old_value_p is not `NULL`, then *old_value_p is the expected current (preexisting) value of the property (or `NULL` for "unset"). 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.

Validate name and new_value like the same way svn_repos_fs_change_node_prop() does.

Use pool for temporary allocations.

Since
  New in 1.7.

## svn_repos_fs_change_txn_prop()

svn_error_t* svn_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).

See svn_repos_fs_change_txn_props() for more information.

## svn_repos_fs_change_txn_props()

svn_error_t* svn_repos_fs_change_txn_props | ( | svn_fs_txn_t * | txn,
|  | const apr_array_header_t * | props,
|  | apr_pool_t * | pool
| ) |  |

Validating wrapper for svn_fs_change_txn_props() (which see for argument descriptions).

Validate properties and their values the same way svn_repos_fs_change_node_prop() does.

Since
  New in 1.5.

## svn_repos_fs_get_inherited_props()

svn_error_t* svn_repos_fs_get_inherited_props | ( | apr_array_header_t ** | inherited_props,
|  | svn_fs_root_t * | root,
|  | const char * | path,
|  | const char * | propname,
|  | svn_repos_authz_func_t | authz_read_func,
|  | void * | authz_read_baton,
|  | apr_pool_t * | result_pool,
|  | apr_pool_t * | scratch_pool
| ) |  |

Set *inherited_values to a depth-first ordered array of svn_prop_inherited_item_t * structures (the path_or_url members of which are relative filesystem paths) representing the properties inherited by path in root.

If no properties are inherited, then set *inherited_values to an empty array.

if propname is NULL then retrieve all explicit and/or inherited properties. Otherwise retrieve only the properties named propname.

If optional authz_read_func is non-NULL, then use this function (along with optional authz_read_baton) to check the readability of each parent path from which properties are inherited. Silently omit properties for unreadable parent paths.

Allocate *inherited_props in result_pool. Use scratch_pool for temporary allocations.

Since
  New in 1.8.

## svn_repos_fs_revision_prop()

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_repos_fs_revision_proplist()

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.