Subversion
Data Structures | Typedefs | Enumerations | Functions
Filesystem directories

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_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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 

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

Similar to svn_fs_path_change3_t, but with node_rev_id and without path information.

Note
Fields may be added to the end of this structure in future versions. Therefore, to preserve binary compatibility, users should not directly allocate structures of this type.
The 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.
Since
New in 1.6.
Deprecated:
Provided for backwards compatibility with the 1.9 API.

Change descriptor.

Note
Fields may be added to the end of this structure in future versions. Therefore, to preserve binary compatibility, users should not directly allocate structures of this type.
The 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.
Since
New in 1.10.

Opaque iterator object type for a changed paths list.

Since
New in 1.10.

Definition at line 1694 of file svn_fs.h.

The kind of change that occurred on the path.

Similar to svn_fs_path_change2_t, but without kind and copyfrom information.

Deprecated:
Provided for backwards compatibility with the 1.5 API.

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_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_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.