All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Functions

Filesystem Nodes and Node-Revisions. More...


typedef struct svn_fs_id_t svn_fs_id_t
 An object representing a node-revision id. More...


int svn_fs_compare_ids (const svn_fs_id_t *a, const svn_fs_id_t *b)
 Return -1, 0, or 1 if node revisions a and b are respectively unrelated, equivalent, or otherwise related (part of the same node).
svn_boolean_t svn_fs_check_related (const svn_fs_id_t *id1, const svn_fs_id_t *id2)
 Return TRUE if node revisions id1 and id2 are related (part of the same node), else return FALSE.
svn_fs_id_tsvn_fs_parse_id (const char *data, apr_size_t len, apr_pool_t *pool)
svn_string_tsvn_fs_unparse_id (const svn_fs_id_t *id, apr_pool_t *pool)
 Return a Subversion string containing the unparsed form of the node revision id id. More...

Detailed Description

Filesystem Nodes and Node-Revisions.

In a Subversion filesystem, a `node' corresponds roughly to an `inode' in a Unix filesystem:

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.

: 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'.
: 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.

Typedef Documentation

typedef struct svn_fs_id_t svn_fs_id_t

An object representing a node-revision id.

Definition at line 714 of file svn_fs.h.

Function Documentation

svn_fs_id_t* svn_fs_parse_id ( const char *  data,
apr_size_t  len,
apr_pool_t *  pool 
This function is not guaranteed to work with all filesystem types. There is currently no un-deprecated equivalent; contact the Subversion developers if you have a need for it.
Provided for backward compatibility with the 1.0 API.
svn_string_t* svn_fs_unparse_id ( const svn_fs_id_t id,
apr_pool_t *  pool 

Return a Subversion string containing the unparsed form of the node revision id id.

Allocate the string containing the unparsed form in pool.