Subversion
|
Directory entry names and directory paths. More...
Data Structures | |
struct | svn_fs_path_change3_t |
Change descriptor. More... | |
struct | svn_fs_path_change2_t |
Similar to svn_fs_path_change3_t, but with node_rev_id and without path information. More... | |
struct | svn_fs_path_change_t |
Similar to svn_fs_path_change2_t, but without kind and copyfrom information. More... | |
Typedefs | |
typedef enum svn_fs_path_change_kind_t | svn_fs_path_change_kind_t |
The kind of change that occurred on the path. More... | |
typedef struct svn_fs_path_change3_t | svn_fs_path_change3_t |
Change descriptor. More... | |
typedef struct svn_fs_path_change2_t | svn_fs_path_change2_t |
Similar to svn_fs_path_change3_t, but with node_rev_id and without path information. More... | |
typedef struct svn_fs_path_change_t | svn_fs_path_change_t |
Similar to svn_fs_path_change2_t, but without kind and copyfrom information. More... | |
typedef struct svn_fs_path_change_iterator_t | svn_fs_path_change_iterator_t |
Opaque iterator object type for a changed paths list. More... | |
Enumerations | |
enum | svn_fs_path_change_kind_t { svn_fs_path_change_modify = 0, svn_fs_path_change_add, svn_fs_path_change_delete, svn_fs_path_change_replace, svn_fs_path_change_reset } |
The kind of change that occurred on the path. More... | |
Functions | |
svn_fs_path_change2_t * | svn_fs_path_change2_create (const svn_fs_id_t *node_rev_id, svn_fs_path_change_kind_t change_kind, apr_pool_t *pool) |
Allocate an svn_fs_path_change2_t structure in pool, initialize and return it. More... | |
svn_fs_path_change3_t * | svn_fs_path_change3_create (svn_fs_path_change_kind_t change_kind, apr_pool_t *result_pool) |
Allocate an svn_fs_path_change3_t structure in result_pool, initialize and return it. More... | |
svn_fs_path_change3_t * | svn_fs_path_change3_dup (svn_fs_path_change3_t *change, apr_pool_t *result_pool) |
Return a deep copy of *change, allocated in result_pool. More... | |
svn_error_t * | svn_fs_path_change_get (svn_fs_path_change3_t **change, svn_fs_path_change_iterator_t *iterator) |
Set *change to the path change that iterator currently points to and advance the iterator. More... | |
svn_error_t * | svn_fs_paths_changed3 (svn_fs_path_change_iterator_t **iterator, svn_fs_root_t *root, apr_pool_t *result_pool, apr_pool_t *scratch_pool) |
Determine what has changed under a root. More... | |
svn_error_t * | svn_fs_paths_changed2 (apr_hash_t **changed_paths2_p, svn_fs_root_t *root, apr_pool_t *pool) |
Same as svn_fs_paths_changed3() but returning all changes in a single, large data structure and using a single pool for all allocations. More... | |
svn_error_t * | svn_fs_paths_changed (apr_hash_t **changed_paths_p, svn_fs_root_t *root, apr_pool_t *pool) |
Same as svn_fs_paths_changed2(), only with svn_fs_path_change_t * values in the hash (and thus no kind or copyfrom data). More... | |
Directory entry names and directory paths.
Here are the rules for directory entry names, and directory paths:
A directory entry name is a Unicode string encoded in UTF-8, and may not contain the NULL character (U+0000). The name should be in Unicode canonical decomposition and ordering. No directory entry may be named '.', '..', or the empty string. Given a directory entry name which fails to meet these requirements, a filesystem function returns an SVN_ERR_FS_PATH_SYNTAX error.
A directory path is a sequence of zero or more directory entry names, separated by slash characters (U+002f), and possibly ending with slash characters. Sequences of two or more consecutive slash characters are treated as if they were a single slash. If a path ends with a slash, it refers to the same node it would without the slash, but that node must be a directory, or else the function may return an SVN_ERR_FS_NOT_DIRECTORY error.
A path consisting of the empty string, or a string containing only slashes, refers to the root directory.
typedef struct svn_fs_path_change2_t svn_fs_path_change2_t |
Similar to svn_fs_path_change3_t, but with node_rev_id and without path information.
text_mod
, prop_mod
and mergeinfo_mod
flags mean the text, properties and mergeinfo property (respectively) were "touched" by the commit API; this does not mean the new value is different from the old value.typedef struct svn_fs_path_change3_t svn_fs_path_change3_t |
Change descriptor.
text_mod
, prop_mod
and mergeinfo_mod
flags mean the text, properties and mergeinfo property (respectively) were "touched" by the commit API; this does not mean the new value is different from the old value.typedef struct svn_fs_path_change_iterator_t svn_fs_path_change_iterator_t |
typedef enum svn_fs_path_change_kind_t svn_fs_path_change_kind_t |
The kind of change that occurred on the path.
typedef struct svn_fs_path_change_t svn_fs_path_change_t |
Similar to svn_fs_path_change2_t, but without kind and copyfrom information.
The kind of change that occurred on the path.
svn_fs_path_change2_t* svn_fs_path_change2_create | ( | const svn_fs_id_t * | node_rev_id, |
svn_fs_path_change_kind_t | change_kind, | ||
apr_pool_t * | pool | ||
) |
Allocate an svn_fs_path_change2_t structure in pool, initialize and return it.
Set the node_rev_id
field of the created struct to node_rev_id, and change_kind
to change_kind. Set all other fields to their _unknown
, NULL
or invalid value, respectively.
svn_fs_path_change3_t* svn_fs_path_change3_create | ( | svn_fs_path_change_kind_t | change_kind, |
apr_pool_t * | result_pool | ||
) |
Allocate an svn_fs_path_change3_t structure in result_pool, initialize and return it.
Set the change_kind
field to change_kind. Set all other fields to their _unknown
, NULL
or invalid value, respectively.
svn_fs_path_change3_t* svn_fs_path_change3_dup | ( | svn_fs_path_change3_t * | change, |
apr_pool_t * | result_pool | ||
) |
Return a deep copy of *change, allocated in result_pool.
svn_error_t* svn_fs_path_change_get | ( | svn_fs_path_change3_t ** | change, |
svn_fs_path_change_iterator_t * | iterator | ||
) |
Set *change to the path change that iterator currently points to and advance the iterator.
If the change list has been exhausted, change will be set to NULL
.
You may modify **change but its content becomes invalid as soon as either iterator becomes invalid or you call this function again.
node_kind
field in change may be svn_node_unknown and the copyfrom_known
fields may be FALSE.svn_error_t* svn_fs_paths_changed | ( | apr_hash_t ** | changed_paths_p, |
svn_fs_root_t * | root, | ||
apr_pool_t * | pool | ||
) |
Same as svn_fs_paths_changed2(), only with svn_fs_path_change_t * values in the hash (and thus no kind or copyfrom data).
svn_error_t* svn_fs_paths_changed2 | ( | apr_hash_t ** | changed_paths2_p, |
svn_fs_root_t * | root, | ||
apr_pool_t * | pool | ||
) |
Same as svn_fs_paths_changed3() but returning all changes in a single, large data structure and using a single pool for all allocations.
Allocate and return a hash *changed_paths2_p containing descriptions of the paths changed under root. The hash is keyed with const char *
paths, and has svn_fs_path_change2_t * values.
Use pool for all allocations, including the hash and its values.
svn_error_t* svn_fs_paths_changed3 | ( | svn_fs_path_change_iterator_t ** | iterator, |
svn_fs_root_t * | root, | ||
apr_pool_t * | result_pool, | ||
apr_pool_t * | scratch_pool | ||
) |
Determine what has changed under a root.
Set *iterator to an iterator object, allocated in result_pool, which will give access to the full list of changed paths under root. Each call to svn_fs_path_change_get will return a new unique path change and has amortized O(1) runtime. The iteration order is undefined and may change even for the same root.
If root becomes invalid, *iterator becomes invalid, too.
Use scratch_pool for temporary allocations.