pub unsafe extern "C" fn svn_ra_do_diff3(
session: *mut svn_ra_session_t,
reporter: *mut *const svn_ra_reporter3_t,
report_baton: *mut *mut c_void,
revision: svn_revnum_t,
diff_target: *const c_char,
depth: svn_depth_t,
ignore_ancestry: svn_boolean_t,
text_deltas: svn_boolean_t,
versus_url: *const c_char,
diff_editor: *const svn_delta_editor_t,
diff_baton: *mut c_void,
pool: *mut apr_pool_t,
) -> *mut svn_error_tExpand description
Ask the RA layer to ‘diff’ a working copy against @a versus_url; it’s another form of svn_ra_do_update2().
@note This function cannot be used to diff a single file, only a working copy directory. See the svn_ra_do_switch3() function for more details.
The client initially provides a @a diff_editor/@a diff_baton to the RA layer; this editor contains knowledge of where the common diff root is in the working copy (when open_root() is called).
In return, the client receives a @a reporter/@a report_baton. The client then describes its working copy by making calls into the @a reporter.
When finished, the client calls @a reporter->finish_report(). The RA layer then does a complete drive of @a diff_editor, ending with close_edit(), to transmit the diff.
@a diff_target is an optional single path component will restrict the scope of the diff to an entry in the directory represented by the @a session’s URL, or empty if the entire directory is meant to be one of the diff paths.
The working copy will be diffed against @a versus_url as it exists in revision @a revision, or as it is in head if @a revision is @c SVN_INVALID_REVNUM.
Use @a ignore_ancestry to control whether or not items being diffed will be checked for relatedness first. Unrelated items are typically transmitted to the editor as a deletion of one thing and the addition of another, but if this flag is @c TRUE, unrelated items will be diffed as if they were related.
Diff only as deeply as @a depth indicates.
The caller may not perform any RA operations using @a session before finishing the report, and may not perform any RA operations using @a session from within the editing operations of @a diff_editor.
@a text_deltas instructs the driver of the @a diff_editor to enable the generation of text deltas. If @a text_deltas is FALSE the window handler returned by apply_textdelta will be called once with a NULL @c svn_txdelta_window_t pointer.
Use @a pool for memory allocation.
@note The reporter provided by this function does NOT supply copy- from information to the diff editor callbacks.
@note In order to prevent pre-1.5 servers from doing more work than needed, and sending too much data back, a pre-1.5 ‘recurse’ directive may be sent to the server, based on @a depth.
@since New in 1.5.