Subversion
|
Filesystem Nodes and Node-Revisions. More...
Typedefs | |
typedef enum svn_fs_node_relation_t | svn_fs_node_relation_t |
Defines the possible ways two arbitrary (root, path)-pairs may be related. | |
typedef struct svn_fs_id_t | svn_fs_id_t |
An object representing a node-revision id. | |
Enumerations | |
enum | svn_fs_node_relation_t { svn_fs_node_unrelated = 0 , svn_fs_node_unchanged , svn_fs_node_common_ancestor } |
Defines the possible ways two arbitrary (root, path)-pairs may be related. More... | |
Functions | |
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_t * | svn_fs_parse_id (const char *data, apr_size_t len, apr_pool_t *pool) |
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. | |
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.
typedef struct svn_fs_id_t svn_fs_id_t |
typedef enum svn_fs_node_relation_t svn_fs_node_relation_t |
Defines the possible ways two arbitrary (root, path)-pairs may be related.
Defines the possible ways two arbitrary (root, path)-pairs may be related.
Enumerator | |
---|---|
svn_fs_node_unrelated | The (root, path)-pairs are not related, i.e. none of the other cases apply. If the roots refer to different |
svn_fs_node_unchanged | No changes have been made between the (root, path)-pairs, i.e. they have the same (relative) nodes in their sub-trees, corresponding sub- tree nodes have the same contents as well as properties and report the same "created-path" and "created-rev" data. This implies having a common ancestor. However, due to efficiency considerations, the FS implementation may report some combinations as merely having a common ancestor (svn_fs_node_common_ancestor) instead of actually being unchanged. |
svn_fs_node_common_ancestor | The (root, path)-pairs have a common ancestor (which may be one of them) but there are changes between them, i.e. they don't fall into the Due to efficiency considerations, the FS implementation may falsely classify some combinations as merely having a common ancestor that are, in fact, unchanged (svn_fs_node_unchanged). |
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.
References SVN_DEPRECATED.
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_fs_id_t * svn_fs_parse_id | ( | const char * | data, |
apr_size_t | len, | ||
apr_pool_t * | pool ) |
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.