Loading...
Searching...
No Matches
Notification callback handling
Working copy management

In many cases, the WC library will scan a working copy and make changes. More...

## Typedefs

typedef enum svn_wc_notify_action_t | svn_wc_notify_action_t
| The type of action occurring.
typedef enum svn_wc_notify_state_t | svn_wc_notify_state_t
| The type of notification that is occurring.
typedef enum svn_wc_notify_lock_state_t | svn_wc_notify_lock_state_t
| What happened to a lock during an operation.
typedef void(* | svn_wc_notify_func2_t) (void *baton, const svn_wc_notify_t *notify, apr_pool_t *pool)
| Notify the world that notify->action has happened to notify->path.
typedef void(* | svn_wc_notify_func_t) (void *baton, const char *path, svn_wc_notify_action_t action, svn_node_kind_t kind, const char *mime_type, svn_wc_notify_state_t content_state, svn_wc_notify_state_t prop_state, svn_revnum_t revision)
| Similar to svn_wc_notify_func2_t, but takes the information as arguments instead of struct fields.

## Enumerations

enum

svn_wc_notify_action_t {
svn_wc_notify_add = 0 ,
svn_wc_notify_copy ,
svn_wc_notify_delete ,
svn_wc_notify_restore ,
svn_wc_notify_revert ,
svn_wc_notify_failed_revert ,
svn_wc_notify_resolved ,
svn_wc_notify_skip ,
svn_wc_notify_update_delete ,
svn_wc_notify_update_add ,
svn_wc_notify_update_update ,
svn_wc_notify_update_completed ,
svn_wc_notify_update_external ,
svn_wc_notify_status_completed ,
svn_wc_notify_status_external ,
svn_wc_notify_commit_modified ,
svn_wc_notify_commit_added ,
svn_wc_notify_commit_deleted ,
svn_wc_notify_commit_replaced ,
svn_wc_notify_commit_postfix_txdelta ,
svn_wc_notify_blame_revision ,
svn_wc_notify_locked ,
svn_wc_notify_unlocked ,
svn_wc_notify_failed_lock ,
svn_wc_notify_failed_unlock ,
svn_wc_notify_exists ,
svn_wc_notify_changelist_set ,
svn_wc_notify_changelist_clear ,
svn_wc_notify_changelist_moved ,
svn_wc_notify_merge_begin ,
svn_wc_notify_foreign_merge_begin ,
svn_wc_notify_update_replace ,
svn_wc_notify_property_added ,
svn_wc_notify_property_modified ,
svn_wc_notify_property_deleted ,
svn_wc_notify_property_deleted_nonexistent ,
svn_wc_notify_revprop_set ,
svn_wc_notify_revprop_deleted ,
svn_wc_notify_merge_completed ,
svn_wc_notify_tree_conflict ,
svn_wc_notify_failed_external ,
svn_wc_notify_update_started ,
svn_wc_notify_update_skip_obstruction ,
svn_wc_notify_update_skip_working_only ,
svn_wc_notify_update_skip_access_denied ,
svn_wc_notify_update_external_removed ,
svn_wc_notify_update_shadowed_add ,
svn_wc_notify_update_shadowed_update ,
svn_wc_notify_update_shadowed_delete ,
svn_wc_notify_merge_record_info ,
svn_wc_notify_upgraded_path ,
svn_wc_notify_merge_record_info_begin ,
svn_wc_notify_merge_elide_info ,
svn_wc_notify_patch ,
svn_wc_notify_patch_applied_hunk ,
svn_wc_notify_patch_rejected_hunk ,
svn_wc_notify_patch_hunk_already_applied ,
svn_wc_notify_commit_copied ,
svn_wc_notify_commit_copied_replaced ,
svn_wc_notify_url_redirect ,
svn_wc_notify_path_nonexistent ,
svn_wc_notify_exclude ,
svn_wc_notify_failed_conflict ,
svn_wc_notify_failed_missing ,
svn_wc_notify_failed_out_of_date ,
svn_wc_notify_failed_no_parent ,
svn_wc_notify_failed_locked ,
svn_wc_notify_failed_forbidden_by_server ,
svn_wc_notify_skip_conflicted ,
svn_wc_notify_update_broken_lock ,
svn_wc_notify_failed_obstruction ,
svn_wc_notify_conflict_resolver_starting ,
svn_wc_notify_conflict_resolver_done ,
svn_wc_notify_left_local_modifications ,
svn_wc_notify_foreign_copy_begin ,
svn_wc_notify_move_broken ,
svn_wc_notify_cleanup_external ,
svn_wc_notify_failed_requires_target ,
svn_wc_notify_info_external ,
svn_wc_notify_commit_finalizing ,
svn_wc_notify_resolved_text ,
svn_wc_notify_resolved_prop ,
svn_wc_notify_resolved_tree ,
svn_wc_notify_begin_search_tree_conflict_details ,
svn_wc_notify_tree_conflict_details_progress ,
svn_wc_notify_end_search_tree_conflict_details
}

| The type of action occurring. More...
enum | svn_wc_notify_state_t { svn_wc_notify_state_inapplicable = 0 , svn_wc_notify_state_unknown , svn_wc_notify_state_unchanged , svn_wc_notify_state_missing , svn_wc_notify_state_obstructed , svn_wc_notify_state_changed , svn_wc_notify_state_merged , svn_wc_notify_state_conflicted , svn_wc_notify_state_source_missing }
| The type of notification that is occurring. More...
enum | svn_wc_notify_lock_state_t { svn_wc_notify_lock_state_inapplicable = 0 , svn_wc_notify_lock_state_unknown , svn_wc_notify_lock_state_unchanged , svn_wc_notify_lock_state_locked , svn_wc_notify_lock_state_unlocked }
| What happened to a lock during an operation. More...

## Functions

svn_wc_notify_t * | svn_wc_create_notify (const char *path, svn_wc_notify_action_t action, apr_pool_t *pool)
| Allocate an svn_wc_notify_t structure in pool, initialize and return it.
svn_wc_notify_t * | svn_wc_create_notify_url (const char *url, svn_wc_notify_action_t action, apr_pool_t *pool)
| Allocate an svn_wc_notify_t structure in pool, initialize and return it.
svn_wc_notify_t * | svn_wc_dup_notify (const svn_wc_notify_t *notify, apr_pool_t *pool)
| Return a deep copy of notify, allocated in pool.

## Variables

const char * | path
| Structure used in the svn_wc_notify_func2_t function.
svn_wc_notify_action_t | action
| Action that describes what happened to #svn_wc_notify_t.path.
svn_node_kind_t | kind
| Node kind of `path`.
const char * | mime_type
| If non-NULL, indicates the mime-type of `path`.
const svn_lock_t * | lock
| Points to the lock structure received from the repository when `action` is svn_wc_notify_locked.
svn_error_t * | err
| Points to an error describing the reason for the failure when `action` is one of the following: svn_wc_notify_failed_lock, svn_wc_notify_failed_unlock, svn_wc_notify_failed_external.
svn_wc_notify_state_t | content_state
| The type of notification that is occurring about node content.
svn_wc_notify_state_t | prop_state
| The type of notification that is occurring about node properties.
svn_wc_notify_lock_state_t | lock_state
| Reflects the addition or removal of a lock token in the working copy.
svn_revnum_t | revision
| When `action` is svn_wc_notify_update_completed, target revision of the update, or SVN_INVALID_REVNUM if not available; when `action` is svn_wc_notify_blame_revision, processed revision; Since Subversion 1.7 when action is svn_wc_notify_update_update or svn_wc_notify_update_add, the target revision.
const char * | changelist_name
| If `action` pertains to a changelist, this is the changelist name.
svn_merge_range_t * | merge_range
| When `action` is svn_wc_notify_merge_begin or svn_wc_notify_foreign_merge_begin or svn_wc_notify_merge_record_info_begin, and both the left and right sides of the merge are from the same URL.
const char * | url
| Similar to `path`, but if non-NULL the notification is about a url.
const char * | path_prefix
| If non-NULL, specifies an absolute path prefix that can be subtracted from the start of the absolute path in `path` or `url`.
const char * | prop_name
| If `action` relates to properties, specifies the name of the property.
apr_hash_t * | rev_props
| If `action` is svn_wc_notify_blame_revision, contains a list of revision properties for the specified revision.
svn_revnum_t | old_revision
| If `action` is svn_wc_notify_update_update or svn_wc_notify_update_add, contains the revision before the update.
svn_linenum_t | hunk_original_start
| These fields are used by svn patch to identify the hunk the notification is for.
svn_linenum_t | hunk_original_length
svn_linenum_t | hunk_modified_start
svn_linenum_t | hunk_modified_length
svn_linenum_t | hunk_matched_line
| The line at which a hunk was matched (and applied).
svn_linenum_t | hunk_fuzz
| The fuzz factor the hunk was applied with.
| svn_wc_notify_t

## Detailed Description

In many cases, the WC library will scan a working copy and make changes.

The caller usually wants to know when each of these changes has been made, so that it can display some kind of notification to the user.

These notifications have a standard callback function type, which takes the path of the file that was affected, and a caller- supplied baton.

Note
  The callback is a 'void' return – this is a simple reporting mechanism, rather than an opportunity for the caller to alter the operation of the WC library.
  Some of the actions are used across several different Subversion commands. For example, the update actions are also used for checkouts, switches, and merges.

## Typedef Documentation

## svn_wc_notify_func2_t

typedef void(* svn_wc_notify_func2_t) (void *baton, const svn_wc_notify_t *notify, apr_pool_t *pool)

Notify the world that notify->action has happened to notify->path.

Recommendation: callers of svn_wc_notify_func2_t should avoid invoking it multiple times on the same path within a given operation, and implementations should not bother checking for such duplicate calls. For example, in an update, the caller should not invoke the notify func on receiving a prop change and then again on receiving a text change. Instead, wait until all changes have been received, and then invoke the notify func once (from within an svn_delta_editor_t's close_file(), for example), passing the appropriate notify->content_state and notify->prop_state flags.

Since
  New in 1.2.

Definition at line 1553 of file svn_wc.h.

## svn_wc_notify_func_t

typedef void(* svn_wc_notify_func_t) (void *baton, const char *path, svn_wc_notify_action_t action, svn_node_kind_t kind, const char *mime_type, svn_wc_notify_state_t content_state, svn_wc_notify_state_t prop_state, svn_revnum_t revision)

Similar to svn_wc_notify_func2_t, but takes the information as arguments instead of struct fields.

Deprecated
  Provided for backward compatibility with the 1.1 API.

Definition at line 1563 of file svn_wc.h.

## svn_wc_notify_lock_state_t

typedef enum svn_wc_notify_lock_state_t svn_wc_notify_lock_state_t

What happened to a lock during an operation.

Since
  New in 1.2.

## Enumeration Type Documentation

## svn_wc_notify_action_t

enum svn_wc_notify_action_t

The type of action occurring.

Enumerator
svn_wc_notify_add | Adding a path to revision control.
svn_wc_notify_copy | Copying a versioned path.
svn_wc_notify_delete | Deleting a versioned path.
svn_wc_notify_restore | Restoring a missing path from the pristine text-base.
svn_wc_notify_revert | Reverting a modified path.
svn_wc_notify_failed_revert | A revert operation has failed.

svn_wc_notify_resolved

All conflicts on a path were marked as resolved.

Note
  As of 1.10, separate notifications are sent for individually resolved text, property, and tree conflicts. This notification is used only if all conflicts on a path were marked resolved at once.

svn_wc_notify_skip | Skipping a path.
svn_wc_notify_update_delete | Got a delete in an update.
svn_wc_notify_update_add | Got an add in an update.
svn_wc_notify_update_update | Got any other action in an update.
svn_wc_notify_update_completed | The last notification in an update (including updates of externals).
svn_wc_notify_update_external | Updating an external module.
svn_wc_notify_status_completed | The last notification in a status (including status on externals).
svn_wc_notify_status_external | Running status on an external module.
svn_wc_notify_commit_modified | Committing a modification.
svn_wc_notify_commit_added | Committing an addition.
svn_wc_notify_commit_deleted | Committing a deletion.
svn_wc_notify_commit_replaced | Committing a replacement.
svn_wc_notify_commit_postfix_txdelta | Transmitting post-fix text-delta data for a file.
svn_wc_notify_blame_revision | Processed a single revision's blame.

svn_wc_notify_locked

Locking a path.

Since
  New in 1.2.

svn_wc_notify_unlocked

Unlocking a path.

Since
  New in 1.2.

svn_wc_notify_failed_lock

Failed to lock a path.

Since
  New in 1.2.

svn_wc_notify_failed_unlock

Failed to unlock a path.

Since
  New in 1.2.

svn_wc_notify_exists

Tried adding a path that already exists.

Since
  New in 1.5.

svn_wc_notify_changelist_set

Changelist name set.

Since
  New in 1.5.

svn_wc_notify_changelist_clear

Changelist name cleared.

Since
  New in 1.5.

svn_wc_notify_changelist_moved

Warn user that a path has moved from one changelist to another.

Since
  New in 1.5.

Deprecated
  As of 1.7, separate clear and set notifications are sent.

svn_wc_notify_merge_begin

A merge operation (to path) has begun.

See #svn_wc_notify_t.merge_range.

Since
  New in 1.5.

svn_wc_notify_foreign_merge_begin

A merge operation (to path) from a foreign repository has begun.

See #svn_wc_notify_t.merge_range.

Since
  New in 1.5.

svn_wc_notify_update_replace

Replace notification.

Since
  New in 1.5.

svn_wc_notify_property_added

Property added.

Since
  New in 1.6.

svn_wc_notify_property_modified

Property updated.

Since
  New in 1.6.

svn_wc_notify_property_deleted

Property deleted.

Since
  New in 1.6.

svn_wc_notify_property_deleted_nonexistent

Nonexistent property deleted.

Since
  New in 1.6.

svn_wc_notify_revprop_set

Revprop set.

Since
  New in 1.6.

svn_wc_notify_revprop_deleted

Revprop deleted.

Since
  New in 1.6.

svn_wc_notify_merge_completed

The last notification in a merge.

Since
  New in 1.6.

svn_wc_notify_tree_conflict

The path is a tree-conflict victim of the intended action (not a persistent tree-conflict from an earlier operation, but this operation caused the tree-conflict).

Since
  New in 1.6.

svn_wc_notify_failed_external

The path is a subdirectory referenced in an externals definition which is unable to be operated on.

Since
  New in 1.6.

svn_wc_notify_update_started

Starting an update operation.

Since
  New in 1.7.

svn_wc_notify_update_skip_obstruction

An update tried to add a file or directory at a path where a separate working copy was found.

Since
  New in 1.7.

svn_wc_notify_update_skip_working_only

An explicit update tried to update a file or directory that doesn't live in the repository and can't be brought in.

Since
  New in 1.7.

svn_wc_notify_update_skip_access_denied

An update tried to update a file or directory to which access could not be obtained.

Since
  New in 1.7.

svn_wc_notify_update_external_removed

An update operation removed an external working copy.

Since
  New in 1.7.

svn_wc_notify_update_shadowed_add

A node below an existing node was added during update.

Since
  New in 1.7.

svn_wc_notify_update_shadowed_update

A node below an existing node was updated during update.

Since
  New in 1.7.

svn_wc_notify_update_shadowed_delete

A node below an existing node was deleted during update.

Since
  New in 1.7.

svn_wc_notify_merge_record_info

The mergeinfo on path was updated.

Since
  New in 1.7.

svn_wc_notify_upgraded_path

A working copy directory was upgraded to the latest format.

Since
  New in 1.7.

svn_wc_notify_merge_record_info_begin

Mergeinfo describing a merge was recorded.

Since
  New in 1.7.

svn_wc_notify_merge_elide_info

Mergeinfo was removed due to elision.

Since
  New in 1.7.

svn_wc_notify_patch

A file in the working copy was patched.

Since
  New in 1.7.

svn_wc_notify_patch_applied_hunk

A hunk from a patch was applied.

Since
  New in 1.7.

svn_wc_notify_patch_rejected_hunk

A hunk from a patch was rejected.

Since
  New in 1.7.

svn_wc_notify_patch_hunk_already_applied

A hunk from a patch was found to already be applied.

Since
  New in 1.7.

svn_wc_notify_commit_copied

Committing a non-overwriting copy (path is the target of the copy, not the source).

Since
  New in 1.7.

svn_wc_notify_commit_copied_replaced

Committing an overwriting (replace) copy (path is the target of the copy, not the source).

Since
  New in 1.7.

svn_wc_notify_url_redirect

The server has instructed the client to follow a URL redirection.

Since
  New in 1.7.

svn_wc_notify_path_nonexistent

The operation was attempted on a path which doesn't exist.

Since
  New in 1.7.

svn_wc_notify_exclude

Removing a path by excluding it.

Since
  New in 1.7.

svn_wc_notify_failed_conflict

Operation failed because the node remains in conflict.

Since
  New in 1.7.

svn_wc_notify_failed_missing

Operation failed because an added node is missing.

Since
  New in 1.7.

svn_wc_notify_failed_out_of_date

Operation failed because a node is out of date.

Since
  New in 1.7.

svn_wc_notify_failed_no_parent

Operation failed because an added parent is not selected.

Since
  New in 1.7.

svn_wc_notify_failed_locked

Operation failed because a node is locked by another user and/or working copy.

Since
  New in 1.7.

svn_wc_notify_failed_forbidden_by_server

Operation failed because the operation was forbidden by the server.

Since
  New in 1.7.

svn_wc_notify_skip_conflicted

The operation skipped the path because it was conflicted.

Since
  New in 1.7.

svn_wc_notify_update_broken_lock

Just the lock on a file was removed during update.

Since
  New in 1.8.

svn_wc_notify_failed_obstruction

Operation failed because a node is obstructed.

Since
  New in 1.8.

svn_wc_notify_conflict_resolver_starting

Conflict resolver is starting.

This can be used by clients to detect when to display conflict summary information, for example.

Since
  New in 1.8.

svn_wc_notify_conflict_resolver_done

Conflict resolver is done.

This can be used by clients to detect when to display conflict summary information, for example.

Since
  New in 1.8.

svn_wc_notify_left_local_modifications

The current operation left local changes of something that was deleted The changes are available on (and below) the notified path.

Since
  New in 1.8.

svn_wc_notify_foreign_copy_begin

A copy from a foreign repository has started.

Since
  New in 1.8.

svn_wc_notify_move_broken

A move in the working copy has been broken, i.e.

degraded into a copy + delete. The notified path is the move source (the deleted path).

### TODO: Provide path to move destination as well?

Since
  New in 1.8.

svn_wc_notify_cleanup_external

Running cleanup on an external module.

Since
  New in 1.9.

svn_wc_notify_failed_requires_target

The operation failed because the operation (E.g.

commit) is only valid if the operation includes this path.

Since
  New in 1.9.

svn_wc_notify_info_external

Running info on an external module.

Since
  New in 1.9.

svn_wc_notify_commit_finalizing

Finalizing commit.

Since
  New in 1.9.

svn_wc_notify_resolved_text

All text conflicts in a file were marked as resolved.

Since
  New in 1.10.

svn_wc_notify_resolved_prop

A property conflict on a path was marked as resolved.

The name of the property is specified in #svn_wc_notify_t.prop_name.

Since
  New in 1.10.

svn_wc_notify_resolved_tree

A tree conflict on a path was marked as resolved.

Since
  New in 1.10.

svn_wc_notify_begin_search_tree_conflict_details

Starting to search the repository for details about a tree conflict.

Since
  New in 1.10.

svn_wc_notify_tree_conflict_details_progress

Progressing in search of repository for details about a tree conflict.

The revision being searched is specified in #svn_wc_notify_t.revision.

Since
  New in 1.10.

svn_wc_notify_end_search_tree_conflict_details

Done searching the repository for details about a conflict.

Since
  New in 1.10.

Definition at line 981 of file svn_wc.h.

## svn_wc_notify_lock_state_t

enum svn_wc_notify_lock_state_t

What happened to a lock during an operation.

Since
  New in 1.2.

Enumerator
svn_wc_notify_lock_state_unchanged | The lock wasn't changed.
svn_wc_notify_lock_state_locked | The item was locked.
svn_wc_notify_lock_state_unlocked | The item was unlocked.

Definition at line 1347 of file svn_wc.h.

## svn_wc_notify_state_t

enum svn_wc_notify_state_t

The type of notification that is occurring.

Enumerator
svn_wc_notify_state_unknown | Notifier doesn't know or isn't saying.
svn_wc_notify_state_unchanged | The state did not change.
svn_wc_notify_state_missing | The item wasn't present.
svn_wc_notify_state_obstructed | An unversioned item obstructed work.
svn_wc_notify_state_changed | Pristine state was modified.
svn_wc_notify_state_merged | Modified state had mods merged in.
svn_wc_notify_state_conflicted | Modified state got conflicting mods.
svn_wc_notify_state_source_missing | The source to copy the file from is missing.

Definition at line 1312 of file svn_wc.h.

## Function Documentation

## svn_wc_create_notify()

svn_wc_notify_t * svn_wc_create_notify | ( | const char * | path,
|  | svn_wc_notify_action_t | action,
|  | apr_pool_t * | pool )

Allocate an svn_wc_notify_t structure in pool, initialize and return it.

Set the `path` field of the created struct to path, and `action` to action. Set all other fields to their `_unknown`, `NULL` or invalid value, respectively. Make only a shallow copy of the pointer path.

Since
  New in 1.2.

References action, and path.

## svn_wc_create_notify_url()

svn_wc_notify_t * svn_wc_create_notify_url | ( | const char * | url,
|  | svn_wc_notify_action_t | action,
|  | apr_pool_t * | pool )

Allocate an svn_wc_notify_t structure in pool, initialize and return it.

Set the `url` field of the created struct to url, `path` to "." and `action` to action. Set all other fields to their `_unknown`, `NULL` or invalid value, respectively. Make only a shallow copy of the pointer url.

Since
  New in 1.6.

References action, and url.

## svn_wc_dup_notify()

svn_wc_notify_t * svn_wc_dup_notify | ( | const svn_wc_notify_t * | notify,
|  | apr_pool_t * | pool )

Return a deep copy of notify, allocated in pool.

Since
  New in 1.2.

## Variable Documentation

## action

svn_wc_notify_action_t action

Action that describes what happened to #svn_wc_notify_t.path.

Definition at line 1399 of file svn_wc.h.

Referenced by svn_repos_notify_create(), svn_wc_create_notify(), and svn_wc_create_notify_url().

## changelist_name

const char* changelist_name

If `action` pertains to a changelist, this is the changelist name.

In all other cases, it is `NULL`.

Since
  New in 1.5

Definition at line 1439 of file svn_wc.h.

## content_state

svn_wc_notify_state_t content_state

The type of notification that is occurring about node content.

Definition at line 1420 of file svn_wc.h.

## err

svn_error_t* err

Points to an error describing the reason for the failure when `action` is one of the following: svn_wc_notify_failed_lock, svn_wc_notify_failed_unlock, svn_wc_notify_failed_external.

Is `NULL` otherwise.

Definition at line 1417 of file svn_wc.h.

Referenced by svn_err_best_message(), svn_error_dup(), svn_error_find_cause(), svn_error_purge_tracing(), svn_error_root_cause(), svn_ra_svn_write_cmd_failure(), and svn_stream_for_stderr().

## hunk_fuzz

svn_linenum_t hunk_fuzz

The fuzz factor the hunk was applied with.

Since
  New in 1.7

Definition at line 1490 of file svn_wc.h.

## hunk_matched_line

svn_linenum_t hunk_matched_line

The line at which a hunk was matched (and applied).

Since
  New in 1.7.

Definition at line 1486 of file svn_wc.h.

## hunk_modified_length

svn_linenum_t hunk_modified_length

Definition at line 1481 of file svn_wc.h.

## hunk_modified_start

svn_linenum_t hunk_modified_start

Definition at line 1480 of file svn_wc.h.

## hunk_original_length

svn_linenum_t hunk_original_length

Definition at line 1479 of file svn_wc.h.

## hunk_original_start

svn_linenum_t hunk_original_start

These fields are used by svn patch to identify the hunk the notification is for.

They are line-based offsets and lengths parsed from the unidiff hunk header.

Since
  New in 1.7.

Definition at line 1478 of file svn_wc.h.

## kind

svn_node_kind_t kind

Node kind of `path`.

Definition at line 1402 of file svn_wc.h.

Referenced by svn_checksum(), svn_checksum_create(), svn_checksum_ctx_create(), svn_checksum_empty_checksum(), svn_checksum_parse_hex(), svn_fs_file_checksum(), svn_io_check_path(), svn_io_check_resolved_path(), svn_io_check_special_path(), svn_io_file_checksum2(), svn_node_kind_to_word(), svn_ra_check_path(), svn_stream_contents_checksum(), svn_wc_canonicalize_svn_prop(), svn_wc_check_root(), svn_wc_conflict_version_create2(), svn_wc_read_kind(), and svn_wc_read_kind2().

## lock

const svn_lock_t* lock

Points to the lock structure received from the repository when `action` is svn_wc_notify_locked.

For other actions, it is `NULL`.

Definition at line 1411 of file svn_wc.h.

Referenced by svn_fs_get_lock(), svn_fs_lock(), svn_lock_dup(), svn_ra_get_lock(), svn_repos_fs_lock(), svn_wc_add_lock(), and svn_wc_add_lock2().

## lock_state

svn_wc_notify_lock_state_t lock_state

Reflects the addition or removal of a lock token in the working copy.

Definition at line 1426 of file svn_wc.h.

## merge_range

svn_merge_range_t* merge_range

When `action` is svn_wc_notify_merge_begin or svn_wc_notify_foreign_merge_begin or svn_wc_notify_merge_record_info_begin, and both the left and right sides of the merge are from the same URL.

In all other cases, it is `NULL`.

Since
  New in 1.5

Definition at line 1446 of file svn_wc.h.

## mime_type

const char* mime_type

If non-NULL, indicates the mime-type of `path`.

It is always `NULL` for directories.

Definition at line 1406 of file svn_wc.h.

Referenced by svn_mime_type_is_binary(), and svn_mime_type_validate().

## old_revision

svn_revnum_t old_revision

If `action` is svn_wc_notify_update_update or svn_wc_notify_update_add, contains the revision before the update.

In all other cases, it is SVN_INVALID_REVNUM.

Since
  New in 1.7

Definition at line 1471 of file svn_wc.h.

## path

const char* path

Structure used in the svn_wc_notify_func2_t function.

`kind`, `content_state`, `prop_state` and `lock_state` are from after `action`, not before.

Note
  If `action` is svn_wc_notify_update_completed, then `path` has already been installed, so it is legitimate for an implementation of svn_wc_notify_func2_t to examine `path` in the working copy.
  The purpose of the `kind`, `mime_type`, `content_state`, and `prop_state` fields is to provide "for free" information that an implementation is likely to want, and which it would otherwise be forced to deduce via expensive operations such as reading entries and properties. However, if the caller does not have this information, it will simply pass the corresponding `*_unknown' values, and it is up to the implementation how to handle that (i.e., whether to attempt deduction, or just to punt and give a less informative notification).
  Callers of notification functions should use svn_wc_create_notify() or svn_wc_create_notify_url() to create structures of this type to allow for extensibility.

Since
  New in 1.2. */ typedef struct svn_wc_notify_t {

/** Path, either absolute or relative to the current working directory (i.e., not relative to an anchor). `path` is "." or another valid path value for compatibility reasons when the real target is a url that is available in `url`.

Definition at line 1396 of file svn_wc.h.

Referenced by apache::subversion::svnxx::client::async::status(), apache::subversion::svnxx::client::async::status(), apache::subversion::svnxx::client::status(), svn_client_add(), svn_client_add2(), svn_client_add3(), svn_client_add4(), svn_client_add5(), svn_client_checkout(), svn_client_checkout2(), svn_client_checkout3(), svn_client_diff_peg(), svn_client_diff_peg2(), svn_client_diff_peg3(), svn_client_diff_peg4(), svn_client_diff_peg5(), svn_client_diff_summarize_peg(), svn_client_get_changelists(), svn_client_import(), svn_client_import2(), svn_client_import3(), svn_client_import4(), svn_client_import5(), svn_client_resolve(), svn_client_resolved(), svn_client_status(), svn_client_status2(), svn_client_status3(), svn_client_status4(), svn_client_status5(), svn_client_status6(), svn_client_switch(), svn_client_switch2(), svn_client_switch3(), svn_client_update(), svn_client_uuid_from_path(), svn_config_get_user_config_path(), svn_dirent_is_under_root(), svn_fs_access_add_lock_token2(), svn_fs_apply_text(), svn_fs_apply_textdelta(), svn_fs_berkeley_logfiles(), svn_fs_berkeley_recover(), svn_fs_change_node_prop(), svn_fs_check_path(), svn_fs_closest_copy(), svn_fs_copied_from(), svn_fs_create(), svn_fs_create2(), svn_fs_create_berkeley(), svn_fs_delete(), svn_fs_delete_berkeley(), svn_fs_delete_fs(), svn_fs_dir_entries(), svn_fs_file_checksum(), svn_fs_file_contents(), svn_fs_file_length(), svn_fs_file_md5_checksum(), svn_fs_get_lock(), svn_fs_get_locks(), svn_fs_get_locks2(), svn_fs_history_location(), svn_fs_is_dir(), svn_fs_is_file(), svn_fs_lock(), svn_fs_make_dir(), svn_fs_make_file(), svn_fs_node_created_path(), svn_fs_node_created_rev(), svn_fs_node_has_props(), svn_fs_node_history(), svn_fs_node_history2(), svn_fs_node_id(), svn_fs_node_origin_rev(), svn_fs_node_prop(), svn_fs_node_proplist(), svn_fs_open(), svn_fs_open2(), svn_fs_open_berkeley(), svn_fs_recover(), svn_fs_revision_link(), svn_fs_try_process_file_contents(), svn_fs_type(), svn_fs_unlock(), svn_fs_upgrade(), svn_fs_upgrade2(), svn_fs_verify(), svn_io_check_path(), svn_io_check_resolved_path(), svn_io_check_special_path(), svn_io_create_unique_link(), svn_io_dir_empty(), svn_io_dir_make(), svn_io_dir_make_hidden(), svn_io_dir_make_sgid(), svn_io_file_affected_time(), svn_io_get_dir_filenames(), svn_io_get_dirents(), svn_io_get_dirents2(), svn_io_get_dirents3(), svn_io_is_file_executable(), svn_io_make_dir_recursively(), svn_io_open_unique_file(), svn_io_open_unique_file2(), svn_io_read_link(), svn_io_read_version_file(), svn_io_remove_dir(), svn_io_remove_dir2(), svn_io_remove_file(), svn_io_remove_file2(), svn_io_run_cmd(), svn_io_set_file_affected_time(), svn_io_set_file_executable(), svn_io_set_file_read_only(), svn_io_set_file_read_write(), svn_io_set_file_read_write_carefully(), svn_io_sleep_for_timestamps(), svn_io_start_cmd(), svn_io_start_cmd2(), svn_io_start_cmd3(), svn_io_stat_dirent(), svn_io_stat_dirent2(), svn_io_write_version_file(), svn_mergeinfo_inheritable(), svn_mergeinfo_inheritable2(), svn_opt_parse_path(), svn_path_add_component(), svn_path_basename(), svn_path_canonicalize(), svn_path_check_valid(), svn_path_component_count(), svn_path_decompose(), svn_path_dirname(), svn_path_illegal_path_escape(), svn_path_internal_style(), svn_path_is_backpath_present(), svn_path_is_canonical(), svn_path_is_dotpath_present(), svn_path_is_empty(), svn_path_is_repos_relative_url(), svn_path_is_uri_safe(), svn_path_is_url(), svn_path_local_style(), svn_path_remove_component(), svn_path_remove_components(), svn_path_split(), svn_path_split_if_file(), svn_path_splitext(), svn_path_uri_decode(), svn_path_uri_encode(), svn_ra_check_path(), svn_ra_get_deleted_rev(), svn_ra_get_dir(), svn_ra_get_dir2(), svn_ra_get_file(), svn_ra_get_file_revs(), svn_ra_get_file_revs2(), svn_ra_get_inherited_props(), svn_ra_get_location_segments(), svn_ra_get_locations(), svn_ra_get_lock(), svn_ra_get_locks(), svn_ra_get_locks2(), svn_ra_list(), svn_ra_stat(), svn_repos_authz_check_access(), svn_repos_authz_read2(), svn_repos_authz_read3(), svn_repos_authz_read4(), svn_repos_create(), svn_repos_db_logfiles(), svn_repos_delete(), svn_repos_delete_path(), svn_repos_deleted_rev(), svn_repos_find_root_path(), svn_repos_fs_change_node_prop(), svn_repos_fs_get_inherited_props(), svn_repos_fs_get_locks(), svn_repos_fs_get_locks2(), svn_repos_fs_lock(), svn_repos_fs_unlock(), svn_repos_get_committed_info(), svn_repos_get_file_revs(), svn_repos_get_file_revs2(), svn_repos_history(), svn_repos_history2(), svn_repos_link_path(), svn_repos_link_path2(), svn_repos_link_path3(), svn_repos_list(), svn_repos_node_location_segments(), svn_repos_open(), svn_repos_open2(), svn_repos_open3(), svn_repos_recover(), svn_repos_recover2(), svn_repos_recover3(), svn_repos_recover4(), svn_repos_set_path(), svn_repos_set_path2(), svn_repos_set_path3(), svn_repos_stat(), svn_repos_upgrade(), svn_repos_upgrade2(), svn_stream_open_readonly(), svn_stream_open_writable(), svn_subst_create_specialfile(), svn_subst_read_specialfile(), svn_subst_stream_from_specialfile(), svn_wc_add(), svn_wc_add2(), svn_wc_add3(), svn_wc_add_lock(), svn_wc_adm_open(), svn_wc_adm_open2(), svn_wc_adm_open3(), svn_wc_adm_open_anchor(), svn_wc_adm_probe_open(), svn_wc_adm_probe_open2(), svn_wc_adm_probe_open3(), svn_wc_adm_probe_retrieve(), svn_wc_adm_probe_try(), svn_wc_adm_probe_try2(), svn_wc_adm_probe_try3(), svn_wc_adm_retrieve(), svn_wc_canonicalize_svn_prop(), svn_wc_check_wc(), svn_wc_cleanup(), svn_wc_cleanup2(), svn_wc_conflict_description_create_prop(), svn_wc_conflict_description_create_text(), svn_wc_conflict_description_create_tree(), svn_wc_conflicted_p2(), svn_wc_crawl_revisions(), svn_wc_crawl_revisions2(), svn_wc_crawl_revisions3(), svn_wc_crawl_revisions4(), svn_wc_create_notify(), svn_wc_create_tmp_file(), svn_wc_create_tmp_file2(), svn_wc_delete(), svn_wc_delete2(), svn_wc_delete3(), svn_wc_ensure_adm(), svn_wc_ensure_adm2(), svn_wc_ensure_adm3(), svn_wc_entry(), svn_wc_get_actual_target(), svn_wc_get_actual_target2(), svn_wc_get_ancestry(), svn_wc_get_pristine_contents(), svn_wc_get_pristine_copy_path(), svn_wc_get_prop_diffs(), svn_wc_has_binary_prop(), svn_wc_is_wc_root(), svn_wc_locked(), svn_wc_mark_missing_deleted(), svn_wc_maybe_set_repos_root(), svn_wc_merge_prop_diffs(), svn_wc_merge_props(), svn_wc_merge_props2(), svn_wc_process_committed(), svn_wc_process_committed2(), svn_wc_process_committed3(), svn_wc_process_committed4(), svn_wc_prop_get(), svn_wc_prop_list(), svn_wc_prop_set(), svn_wc_prop_set2(), svn_wc_prop_set3(), svn_wc_props_modified_p(), svn_wc_queue_committed(), svn_wc_queue_committed2(), svn_wc_relocate(), svn_wc_relocate2(), svn_wc_relocate3(), svn_wc_remove_lock(), svn_wc_resolved_conflict(), svn_wc_resolved_conflict2(), svn_wc_resolved_conflict3(), svn_wc_resolved_conflict4(), svn_wc_revert(), svn_wc_revert2(), svn_wc_revert3(), svn_wc_set_changelist(), svn_wc_status(), svn_wc_status2(), svn_wc_translated_stream(), svn_wc_transmit_prop_deltas(), svn_wc_transmit_text_deltas(), svn_wc_transmit_text_deltas2(), svn_wc_walk_entries(), svn_wc_walk_entries2(), and svn_wc_walk_entries3().

## path_prefix

const char* path_prefix

If non-NULL, specifies an absolute path prefix that can be subtracted from the start of the absolute path in `path` or `url`.

Its purpose is to allow notification to remove a common prefix from all the paths displayed for an operation.

Since
  New in 1.6

Definition at line 1456 of file svn_wc.h.

## prop_name

const char* prop_name

If `action` relates to properties, specifies the name of the property.

Since
  New in 1.6

Definition at line 1460 of file svn_wc.h.

Referenced by svn_prop_get_value(), svn_prop_is_boolean(), svn_prop_is_known_svn_dir_prop(), svn_prop_is_known_svn_file_prop(), svn_prop_is_known_svn_node_prop(), svn_prop_is_known_svn_rev_prop(), svn_prop_is_svn_prop(), svn_prop_name_is_valid(), svn_prop_needs_translation(), svn_property_kind(), and svn_property_kind2().

## prop_state

svn_wc_notify_state_t prop_state

The type of notification that is occurring about node properties.

Definition at line 1423 of file svn_wc.h.

## rev_props

apr_hash_t* rev_props

If `action` is svn_wc_notify_blame_revision, contains a list of revision properties for the specified revision.

Since
  New in 1.6

Definition at line 1465 of file svn_wc.h.

## revision

svn_revnum_t revision

When `action` is svn_wc_notify_update_completed, target revision of the update, or SVN_INVALID_REVNUM if not available; when `action` is svn_wc_notify_blame_revision, processed revision; Since Subversion 1.7 when action is svn_wc_notify_update_update or svn_wc_notify_update_add, the target revision.

In all other cases, it is SVN_INVALID_REVNUM.

Definition at line 1435 of file svn_wc.h.

Referenced by svn_client_cat(), svn_client_cat2(), svn_client_cat3(), svn_client_checkout(), svn_client_checkout2(), svn_client_checkout3(), svn_client_export(), svn_client_export2(), svn_client_export3(), svn_client_export4(), svn_client_export5(), svn_client_info(), svn_client_info2(), svn_client_info3(), svn_client_info4(), svn_client_list(), svn_client_list2(), svn_client_list3(), svn_client_list4(), svn_client_ls(), svn_client_ls2(), svn_client_ls3(), svn_client_propget(), svn_client_propget2(), svn_client_propget4(), svn_client_propget5(), svn_client_proplist(), svn_client_proplist2(), svn_client_proplist3(), svn_client_proplist4(), svn_client_revprop_get(), svn_client_revprop_list(), svn_client_revprop_set(), svn_client_revprop_set2(), svn_client_status(), svn_client_status2(), svn_client_status3(), svn_client_status4(), svn_client_status5(), svn_client_status6(), svn_client_switch(), svn_client_switch2(), svn_client_switch3(), svn_client_update(), svn_client_update2(), svn_client_update3(), svn_client_update4(), svn_delta_path_driver(), svn_fs_deltify_revision(), svn_fs_history_location(), svn_fs_node_created_rev(), svn_fs_node_origin_rev(), svn_ra_check_path(), svn_ra_do_diff(), svn_ra_do_diff2(), svn_ra_do_diff3(), svn_ra_do_status(), svn_ra_do_status2(), svn_ra_get_dated_revision(), svn_ra_get_dir(), svn_ra_get_dir2(), svn_ra_get_file(), svn_ra_get_inherited_props(), svn_ra_get_mergeinfo(), svn_ra_list(), svn_ra_replay(), svn_ra_stat(), svn_repos_check_revision_access(), svn_repos_dated_revision(), svn_repos_fs_get_mergeinfo(), svn_repos_fs_get_mergeinfo2(), svn_repos_link_path(), svn_repos_link_path2(), svn_repos_link_path3(), svn_repos_set_path(), svn_repos_set_path2(), svn_repos_set_path3(), svn_wc_conflict_version_create2(), svn_wc_ensure_adm(), svn_wc_ensure_adm2(), svn_wc_ensure_adm3(), and svn_wc_ensure_adm4().

## svn_wc_notify_t

svn_wc_notify_t

Definition at line 1495 of file svn_wc.h.

## url

const char* url

Similar to `path`, but if non-NULL the notification is about a url.

Since
  New in 1.6

Definition at line 1450 of file svn_wc.h.

Referenced by svn_client_import(), svn_client_import2(), svn_client_import3(), svn_client_import4(), svn_client_import5(), svn_client_open_ra_session(), svn_client_open_ra_session2(), svn_client_propset_remote(), svn_client_root_url_from_path(), svn_client_switch(), svn_client_switch2(), svn_client_switch3(), svn_client_url_from_path(), svn_client_url_from_path2(), svn_client_uuid_from_url(), svn_path_url_add_component(), svn_path_url_add_component2(), svn_ra_get_path_relative_to_root(), svn_ra_get_path_relative_to_session(), svn_ra_get_ra_library(), svn_ra_get_repos_root(), svn_ra_get_repos_root2(), svn_ra_get_session_url(), svn_ra_reparent(), svn_subst_build_keywords(), svn_subst_build_keywords2(), svn_subst_build_keywords3(), svn_uri_get_dirent_from_file_url(), svn_uri_get_file_url_from_dirent(), svn_wc_create_notify_url(), svn_wc_ensure_adm(), svn_wc_ensure_adm2(), svn_wc_ensure_adm3(), svn_wc_ensure_adm4(), and svn_wc_get_ancestry().