Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_ra.h view on Meta::CPAN
apr_hash_t **dirents,
svn_revnum_t *fetched_rev,
apr_hash_t **props,
apr_pool_t *pool);
/**
* Set @a *catalog to a mergeinfo catalog for the paths in @a paths.
* If no mergeinfo is available, set @a *catalog to @c NULL. The
* requested mergeinfo hashes are for @a paths (which are relative to
* @a session's URL) in @a revision. If one of the paths does not exist
* in that revision, return SVN_ERR_FS_NOT_FOUND.
*
* @a inherit indicates whether explicit, explicit or inherited, or
* only inherited mergeinfo for @a paths is retrieved.
*
* If @a include_descendants is TRUE, then additionally return the
* mergeinfo for any descendant of any element of @a paths which has
* the @c SVN_PROP_MERGEINFO property explicitly set on it. (Note
* that inheritance is only taken into account for the elements in @a
* paths; descendants of the elements in @a paths which get their
* mergeinfo via inheritance are not included in @a *catalog.)
*
* Allocate the returned values in @a pool.
*
* If @a revision is @c SVN_INVALID_REVNUM, it defaults to youngest.
*
* If the server doesn't support retrieval of mergeinfo (which can
* happen even for file:// URLs, if the repository itself hasn't been
* upgraded), return @c SVN_ERR_UNSUPPORTED_FEATURE in preference to
* any other error that might otherwise be returned.
*
* @since New in 1.5.
*/
svn_error_t *
svn_ra_get_mergeinfo(svn_ra_session_t *session,
svn_mergeinfo_catalog_t *catalog,
const apr_array_header_t *paths,
svn_revnum_t revision,
svn_mergeinfo_inheritance_t inherit,
svn_boolean_t include_descendants,
apr_pool_t *pool);
/**
* Ask the RA layer to update a working copy to a new revision.
*
* The client initially provides an @a update_editor/@a update_baton to the
* RA layer; this editor contains knowledge of where the change will
* begin in the working copy (when @c 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 update_editor, ending with
* @a update_editor->close_edit(), to update the working copy.
*
* @a update_target is an optional single path component to restrict
* the scope of the update to just that entry (in the directory
* represented by the @a session's URL). If @a update_target is the
* empty string, the entire directory is updated.
*
* Update the target only as deeply as @a depth indicates.
*
* If @a send_copyfrom_args is TRUE, then ask the server to send
* copyfrom arguments to add_file() and add_directory() when possible.
* (Note: this means that any subsequent txdeltas coming from the
* server are presumed to apply against the copied file!)
*
* Use @a ignore_ancestry to control whether or not items being
* updated 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.
*
* The working copy will be updated to @a revision_to_update_to, or the
* "latest" revision if this arg is invalid.
*
* 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 update_editor.
*
* Allocate @a *reporter and @a *report_baton in @a result_pool. Use
* @a scratch_pool for temporary allocations.
*
* @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.
*
* @note Pre Subversion 1.8 svnserve based servers never ignore ancestry.
*
* @note This differs from calling svn_ra_do_switch3() with the current
* URL of the target node. Update changes only the revision numbers,
* leaving any switched subtrees still switched, whereas switch changes
* every node in the tree to a child of the same URL.
*
* @since New in 1.8.
*/
svn_error_t *
svn_ra_do_update3(svn_ra_session_t *session,
const svn_ra_reporter3_t **reporter,
void **report_baton,
svn_revnum_t revision_to_update_to,
const char *update_target,
svn_depth_t depth,
svn_boolean_t send_copyfrom_args,
svn_boolean_t ignore_ancestry,
const svn_delta_editor_t *update_editor,
void *update_baton,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
/**
* Similar to svn_ra_do_update3(), but always ignoring ancestry.
*
* @since New in 1.5.
* @deprecated Provided for compatibility with the 1.4 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_ra_do_update2(svn_ra_session_t *session,
const svn_ra_reporter3_t **reporter,
void **report_baton,
svn_revnum_t revision_to_update_to,
const char *update_target,
svn_depth_t depth,
svn_boolean_t send_copyfrom_args,
const svn_delta_editor_t *update_editor,
void *update_baton,
apr_pool_t *pool);
/**
* Similar to svn_ra_do_update2(), but taking @c svn_ra_reporter2_t
( run in 0.643 second using v1.01-cache-2.11-cpan-5623c5533a1 )