Filesystem directories
[Filesystem interaction subsystem]

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 struct
svn_fs_path_change_iterator_t 
svn_fs_path_change_iterator_t
 Opaque iterator object type for a changed paths list.

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_tsvn_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.
svn_fs_path_change3_tsvn_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.
svn_fs_path_change3_tsvn_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_tsvn_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.
svn_error_tsvn_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.
SVN_DEPRECATED svn_error_tsvn_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.
SVN_DEPRECATED svn_error_tsvn_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).

Detailed Description

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 Documentation

Opaque iterator object type for a changed paths list.

Since:
New in 1.10.

Definition at line 1694 of file svn_fs.h.


Enumeration Type Documentation

The kind of change that occurred on the path.

Enumerator:
svn_fs_path_change_modify 

path modified in txn

svn_fs_path_change_add 

path added in txn

svn_fs_path_change_delete 

path removed in txn

svn_fs_path_change_replace 

path removed and re-added in txn

svn_fs_path_change_reset 

ignore all previous change items for path (internal-use only)

Definition at line 1481 of file svn_fs.h.


Function Documentation

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.

Since:
New in 1.6.
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.

Since:
New in 1.10.
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.

Since:
New in 1.10.
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.

Note:
The node_kind field in change may be svn_node_unknown and the copyfrom_known fields may be FALSE.
Since:
New in 1.10.
SVN_DEPRECATED 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).

Deprecated:
Provided for backward compatibility with the 1.5 API.
SVN_DEPRECATED 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.

Note:
Retrieving the node_rev_id element of svn_fs_path_change2_t may be expensive in some FS backends.
Since:
New in 1.6.
Deprecated:
Provided for backward compatibility with the 1.9 API.
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.

Note:
The *iterator may be a large object and bind limited system resources such as file handles. Be sure to clear the owning pool once you don't need that iterator anymore.
Since:
New in 1.10.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 14 Nov 2018 for Subversion by  doxygen 1.6.1