Loading...
Searching...
No Matches
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 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_change3_t | svn_fs_path_change3_t
| Change descriptor.
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.
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.
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_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.
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.
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.
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.
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.
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).

## 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

## svn_fs_path_change2_t

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.

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.

## svn_fs_path_change3_t

typedef struct svn_fs_path_change3_t svn_fs_path_change3_t

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.

## svn_fs_path_change_iterator_t

typedef struct svn_fs_path_change_iterator_t svn_fs_path_change_iterator_t

Opaque iterator object type for a changed paths list.

Since
  New in 1.10.

Definition at line 1694 of file svn_fs.h.

## svn_fs_path_change_t

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.

Deprecated:
  Provided for backwards compatibility with the 1.5 API.

## Enumeration Type Documentation

## svn_fs_path_change_kind_t

enum svn_fs_path_change_kind_t

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_create()

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_create()

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_dup()

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_fs_path_change_get()

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_fs_paths_changed()

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_fs_paths_changed2()

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 svn_fs_path_change2_t.node_rev_id element may be expensive in some FS backends.

Since
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.9 API.

## svn_fs_paths_changed3()

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.