# Filesystem directories
[Filesystem interaction subsystem]

Directory entry names and directory paths. More...

## Data Structures
struct | svn_fs_path_change2_t
| Change descriptor. 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_change2_t | svn_fs_path_change2_t
| Change descriptor.
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.
## 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_error_t * | svn_fs_paths_changed2 (apr_hash_t **changed_paths2_p, svn_fs_root_t *root, apr_pool_t *pool)
| Determine what has changed under a root.
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).

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

typedef struct svn_fs_path_change2_t svn_fs_path_change2_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.

Since:
  New in 1.6.

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.

Deprecated:
  Provided for backwards compatibility with the 1.5 API.

## Enumeration Type Documentation

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 1069 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_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_error_t* svn_fs_paths_changed2 | ( | apr_hash_t ** | changed_paths2_p,
|  | svn_fs_root_t * | root,
|  | apr_pool_t * | pool |
| ) |  |  |

Determine what has changed under a root.

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.

Callers can assume that this function takes time proportional to the amount of data output, and does not need to do tree crawls; however, it is possible that some of the `node_kind` fields in the svn_fs_path_change2_t * values will be svn_node_unknown or that and some of the `copyfrom_known` fields will be FALSE.

Use pool for all allocations, including the hash and its values.

Since:
  New in 1.6.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines