Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_fs.h view on Meta::CPAN
apr_pool_t *pool);
/** Associate @a access_ctx with an open @a fs.
*
* This function can be run multiple times on the same open
* filesystem, in order to change the filesystem access context for
* different filesystem operations. Pass a NULL value for @a
* access_ctx to disassociate the current access context from the
* filesystem.
*/
svn_error_t *
svn_fs_set_access(svn_fs_t *fs,
svn_fs_access_t *access_ctx);
/** Set @a *access_ctx to the current @a fs access context, or NULL if
* there is no current fs access context.
*/
svn_error_t *
svn_fs_get_access(svn_fs_access_t **access_ctx,
svn_fs_t *fs);
/** Accessors for the access context: */
/** Set @a *username to the name represented by @a access_ctx. */
svn_error_t *
svn_fs_access_get_username(const char **username,
svn_fs_access_t *access_ctx);
/** Push a lock-token @a token associated with path @a path into the
* context @a access_ctx. The context remembers all tokens it
* receives, and makes them available to fs functions. The token and
* path are not duplicated into @a access_ctx's pool; make sure the
* token's lifetime is at least as long as @a access_ctx.
*
* @since New in 1.6. */
svn_error_t *
svn_fs_access_add_lock_token2(svn_fs_access_t *access_ctx,
const char *path,
const char *token);
/**
* Same as svn_fs_access_add_lock_token2(), but with @a path set to value 1.
*
* @deprecated Provided for backward compatibility with the 1.5 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_fs_access_add_lock_token(svn_fs_access_t *access_ctx,
const char *token);
/** @} */
/** Filesystem Nodes and Node-Revisions.
*
* In a Subversion filesystem, a `node' corresponds roughly to an
* `inode' in a Unix filesystem:
* - A node is either a file or a directory.
* - A node's contents change over time.
* - When you change a node's contents, it's still the same node; it's
* just been changed. So a node's identity isn't bound to a specific
* set of contents.
* - If you rename a node, it's still the same node, just under a
* different name. So a node's identity isn't bound to a particular
* filename.
*
* A `node revision' refers to one particular version of a node's contents,
* that existed over a specific period of time (one or more repository
* revisions). Changing a node's contents always creates a new revision of
* that node, which is to say creates a new `node revision'. Once created,
* a node revision's contents never change.
*
* When we create a node, its initial contents are the initial revision of
* the node. As users make changes to the node over time, we create new
* revisions of that same node. When a user commits a change that deletes
* a file from the filesystem, we don't delete the node, or any revision
* of it --- those stick around to allow us to recreate prior revisions of
* the filesystem. Instead, we just remove the reference to the node
* from the directory.
*
* Each node revision is a part of exactly one node, and appears only once
* in the history of that node. It is uniquely identified by a node
* revision id, #svn_fs_id_t. Its node revision id also identifies which
* node it is a part of.
*
* @note: Often when we talk about `the node' within the context of a single
* revision (or transaction), we implicitly mean `the node as it appears in
* this revision (or transaction)', or in other words `the node revision'.
*
* @note: Commonly, a node revision will have the same content as some other
* node revisions in the same node and in different nodes. The FS libraries
* allow different node revisions to share the same data without storing a
* separate copy of the data.
*
* @defgroup svn_fs_nodes Filesystem nodes
* @{
*/
/** An object representing a node-revision id. */
typedef struct svn_fs_id_t svn_fs_id_t;
/** Return -1, 0, or 1 if node revisions @a a and @a b are respectively
* unrelated, equivalent, or otherwise related (part of the same node).
*/
int
svn_fs_compare_ids(const svn_fs_id_t *a,
const svn_fs_id_t *b);
/** Return TRUE if node revisions @a id1 and @a id2 are related (part of the
* same node), else return FALSE.
*/
svn_boolean_t
svn_fs_check_related(const svn_fs_id_t *id1,
const svn_fs_id_t *id2);
( run in 0.828 second using v1.01-cache-2.11-cpan-39bf76dae61 )