Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
* need not be canonicalized nor condensed; this function will take care of
* that. If @a targets has zero elements, then do nothing and return
* immediately without error.
*
* If non-NULL, @a revprop_table is a hash table holding additional,
* custom revision properties (<tt>const char *</tt> names mapped to
* <tt>svn_string_t *</tt> values) to be set on the new revision.
* This table cannot contain any standard Subversion properties.
*
* If @a ctx->notify_func2 is non-NULL, then call @a ctx->notify_func2 with
* @a ctx->notify_baton2 as the commit progresses, with any of the following
* actions: #svn_wc_notify_commit_modified, #svn_wc_notify_commit_added,
* #svn_wc_notify_commit_deleted, #svn_wc_notify_commit_replaced,
* #svn_wc_notify_commit_copied, #svn_wc_notify_commit_copied_replaced,
* #svn_wc_notify_commit_postfix_txdelta.
*
* If @a depth is #svn_depth_infinity, commit all changes to and
* below named targets. If @a depth is #svn_depth_empty, commit
* only named targets (that is, only property changes on named
* directory targets, and property and content changes for named file
* targets). If @a depth is #svn_depth_files, behave as above for
* named file targets, and for named directory targets, commit
* property changes on a named directory and all changes to files
* directly inside that directory. If #svn_depth_immediates, behave
* as for #svn_depth_files, and for subdirectories of any named
* directory target commit as though for #svn_depth_empty.
*
* Unlock paths in the repository, unless @a keep_locks is TRUE.
*
* @a changelists is an array of <tt>const char *</tt> changelist
* names, used as a restrictive filter on items that are committed;
* that is, don't commit anything unless it's a member of one of those
* changelists. After the commit completes successfully, remove
* changelist associations from the targets, unless @a
* keep_changelists is set. If @a changelists is
* empty (or altogether @c NULL), no changelist filtering occurs.
*
* If @a commit_as_operations is set to FALSE, when a copy is committed
* all changes below the copy are always committed at the same time
* (independent of the value of @a depth). If @a commit_as_operations is
* #TRUE, changes to descendants are only committed if they are itself
* included via @a depth and targets.
*
* If @a include_file_externals and/or @a include_dir_externals are #TRUE,
* also commit all file and/or dir externals (respectively) that are reached
* by recursion, except for those externals which:
* - have a fixed revision, or
* - come from a different repository root URL (dir externals).
* These flags affect only recursion; externals that directly appear in @a
* targets are always included in the commit.
*
* ### TODO: currently, file externals hidden inside an unversioned dir are
* skipped deliberately, because we can't commit those yet.
* See STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW.
*
* ### TODO: With @c depth_immediates, this function acts as if
* @a include_dir_externals was passed #FALSE, but caller expects
* immediate child dir externals to be included @c depth_empty.
*
* When @a commit_as_operations is #TRUE it is possible to delete a node and
* all its descendants by selecting just the root of the deletion. If it is
* set to #FALSE this will raise an error.
*
* If @a commit_callback is non-NULL, then for each successful commit, call
* @a commit_callback with @a commit_baton and a #svn_commit_info_t for
* the commit.
*
* @note #svn_depth_unknown and #svn_depth_exclude must not be passed
* for @a depth.
*
* Use @a pool for any temporary allocations.
*
* @since New in 1.8.
*/
svn_error_t *
svn_client_commit6(const apr_array_header_t *targets,
svn_depth_t depth,
svn_boolean_t keep_locks,
svn_boolean_t keep_changelists,
svn_boolean_t commit_as_operations,
svn_boolean_t include_file_externals,
svn_boolean_t include_dir_externals,
const apr_array_header_t *changelists,
const apr_hash_t *revprop_table,
svn_commit_callback2_t commit_callback,
void *commit_baton,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Similar to svn_client_commit6(), but passes @a include_file_externals as
* FALSE and @a include_dir_externals as FALSE.
*
* @since New in 1.7.
* @deprecated Provided for backward compatibility with the 1.7 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_commit5(const apr_array_header_t *targets,
svn_depth_t depth,
svn_boolean_t keep_locks,
svn_boolean_t keep_changelists,
svn_boolean_t commit_as_operations,
const apr_array_header_t *changelists,
const apr_hash_t *revprop_table,
svn_commit_callback2_t commit_callback,
void *commit_baton,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Similar to svn_client_commit5(), but returns the commit info in
* @a *commit_info_p rather than through a callback function. Does not use
* #svn_wc_notify_commit_copied or #svn_wc_notify_commit_copied_replaced
* (preferring #svn_wc_notify_commit_added and
* #svn_wc_notify_commit_replaced, respectively, instead).
*
* Also, if no error is returned and @a (*commit_info_p)->revision is set to
* #SVN_INVALID_REVNUM, then the commit was a no-op; nothing needed to
* be committed.
*
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
svn_revnum_t *set_rev,
svn_boolean_t force,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Similar to svn_client_revprop_set2(), but with @a original_propval
* always @c NULL.
*
* @deprecated Provided for backward compatibility with the 1.5 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_revprop_set(const char *propname,
const svn_string_t *propval,
const char *URL,
const svn_opt_revision_t *revision,
svn_revnum_t *set_rev,
svn_boolean_t force,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Set @a *props to a hash table whose keys are absolute paths or URLs
* of items on which property @a propname is explicitly set, and whose
* values are <tt>svn_string_t *</tt> representing the property value for
* @a propname at that path.
*
* If @a inherited_props is not @c NULL, then set @a *inherited_props to a
* depth-first ordered array of #svn_prop_inherited_item_t * structures
* representing the properties inherited by @a target. If @a target is a
* working copy path, then properties inherited by @a target as far as the
* root of the working copy are obtained from the working copy's actual
* property values. Properties inherited from above the working copy root
* come from the inherited properties cache. If @a target is a URL, then
* the inherited properties come from the repository. If @a inherited_props
* is not @c NULL and no inheritable properties are found, then set
* @a *inherited_props to an empty array.
*
* The #svn_prop_inherited_item_t->path_or_url members of the
* #svn_prop_inherited_item_t * structures in @a *inherited_props are
* URLs if @a target is a URL or if @a target is a working copy path but the
* property represented by the structure is above the working copy root (i.e.
* the inherited property is from the cache). In all other cases the
* #svn_prop_inherited_item_t->path_or_url members are absolute working copy
* paths.
*
* Allocate @a *props (including keys and values) and @a *inherited_props
* (including its elements) in @a result_pool, use @a scratch_pool for
* temporary allocations.
*
* @a target is a WC absolute path or a URL.
*
* Don't store any path, not even @a target, if it does not have a
* property named @a propname.
*
* If @a revision->kind is #svn_opt_revision_unspecified, then: get
* properties from the working copy if @a target is a working copy
* path, or from the repository head if @a target is a URL. Else get
* the properties as of @a revision. The actual node revision
* selected is determined by the path as it exists in @a peg_revision.
* If @a peg_revision->kind is #svn_opt_revision_unspecified, then
* it defaults to #svn_opt_revision_head for URLs or
* #svn_opt_revision_working for WC targets. Use the authentication
* baton in @a ctx for authentication if contacting the repository.
* If @a actual_revnum is not @c NULL, the actual revision number used
* for the fetch is stored in @a *actual_revnum.
*
* If @a depth is #svn_depth_empty, fetch the property from
* @a target only; if #svn_depth_files, fetch from @a target and its
* file children (if any); if #svn_depth_immediates, from @a target
* and all of its immediate children (both files and directories); if
* #svn_depth_infinity, from @a target and everything beneath it.
*
* @a changelists is an array of <tt>const char *</tt> changelist
* names, used as a restrictive filter on items whose properties are
* gotten; that is, don't get @a propname on any item unless it's a member
* of one of those changelists. If @a changelists is empty (or
* altogether @c NULL), no changelist filtering occurs.
*
* If error, don't touch @a *props, otherwise @a *props is a hash table
* even if empty.
*
* This function returns SVN_ERR_UNVERSIONED_RESOURCE when it is called on
* unversioned nodes.
*
* @since New in 1.8.
*/
svn_error_t *
svn_client_propget5(apr_hash_t **props,
apr_array_header_t **inherited_props,
const char *propname,
const char *target, /* abspath or URL */
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_revnum_t *actual_revnum,
svn_depth_t depth,
const apr_array_header_t *changelists,
svn_client_ctx_t *ctx,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
/**
* Similar to svn_client_propget5 but with @a inherited_props always
* passed as NULL.
*
* @since New in 1.7.
* @deprecated Provided for backward compatibility with the 1.7 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_propget4(apr_hash_t **props,
const char *propname,
const char *target, /* abspath or URL */
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_revnum_t *actual_revnum,
svn_depth_t depth,
const apr_array_header_t *changelists,
svn_client_ctx_t *ctx,
apr_pool_t *result_pool,
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
* @deprecated Provided for backward compatibility with the 1.4 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_propget2(apr_hash_t **props,
const char *propname,
const char *target,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_boolean_t recurse,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Similar to svn_client_propget2(), except that @a peg_revision is
* always the same as @a revision.
*
* @deprecated Provided for backward compatibility with the 1.1 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_propget(apr_hash_t **props,
const char *propname,
const char *target,
const svn_opt_revision_t *revision,
svn_boolean_t recurse,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/** Set @a *propval to the value of @a propname on revision @a revision
* in the repository represented by @a URL. Use the authentication baton
* in @a ctx for authentication, and @a pool for all memory allocation.
* Return the actual rev queried in @a *set_rev.
*
* Note that unlike its cousin svn_client_propget(), this routine
* doesn't affect the working copy at all; it's a pure network
* operation that queries an *unversioned* property attached to a
* revision. This can query log messages, dates, authors, and the
* like.
*/
svn_error_t *
svn_client_revprop_get(const char *propname,
svn_string_t **propval,
const char *URL,
const svn_opt_revision_t *revision,
svn_revnum_t *set_rev,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Invoke @a receiver with @a receiver_baton to return the regular explicit, and
* possibly the inherited, properties of @a target, a URL or working copy path.
* @a receiver will be called for each path encountered.
*
* @a target is a WC path or a URL.
*
* If @a revision->kind is #svn_opt_revision_unspecified, then get the
* explicit (and possibly the inherited) properties from the working copy,
* if @a target is a working copy path, or from the repository head if
* @a target is a URL. Else get the properties as of @a revision.
* The actual node revision selected is determined by the path as it exists
* in @a peg_revision. If @a peg_revision->kind is
* #svn_opt_revision_unspecified, then it defaults to #svn_opt_revision_head
* for URLs or #svn_opt_revision_working for WC targets. Use the
* authentication baton cached in @a ctx for authentication if contacting
* the repository.
*
* If @a depth is #svn_depth_empty, list only the properties of
* @a target itself. If @a depth is #svn_depth_files, and
* @a target is a directory, list the properties of @a target
* and its file entries. If #svn_depth_immediates, list the properties
* of its immediate file and directory entries. If #svn_depth_infinity,
* list the properties of its file entries and recurse (with
* #svn_depth_infinity) on directory entries. #svn_depth_unknown is
* equivalent to #svn_depth_empty. All other values produce undefined
* results.
*
* @a changelists is an array of <tt>const char *</tt> changelist
* names, used as a restrictive filter on items whose properties are
* listed; that is, don't list properties on any item unless it's a member
* of one of those changelists. If @a changelists is empty (or
* altogether @c NULL), no changelist filtering occurs.
*
* If @a get_target_inherited_props is true, then also return any inherited
* properties when @a receiver is called for @a target. If @a target is a
* working copy path, then properties inherited by @a target as far as the
* root of the working copy are obtained from the working copy's actual
* property values. Properties inherited from above the working copy
* root come from the inherited properties cache. If @a target is a URL,
* then the inherited properties come from the repository.
* If @a get_target_inherited_props is false, then no inherited properties
* are returned to @a receiver.
*
* If @a target is not found, return the error #SVN_ERR_ENTRY_NOT_FOUND.
*
* @since New in 1.8.
*/
svn_error_t *
svn_client_proplist4(const char *target,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_depth_t depth,
const apr_array_header_t *changelists,
svn_boolean_t get_target_inherited_props,
svn_proplist_receiver2_t receiver,
void *receiver_baton,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
/**
* Similar to svn_client_proplist4(), except that the @a receiver type
* is a #svn_proplist_receiver_t, @a get_target_inherited_props is
* always passed NULL, and there is no separate scratch pool.
*
* @since New in 1.5.
* @deprecated Provided for backward compatibility with the 1.7 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_proplist3(const char *target,
const svn_opt_revision_t *peg_revision,
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
*/
/** The type of function invoked by svn_client_list3() to report the details
* of each directory entry being listed.
*
* @a baton is the baton that was passed to the caller. @a path is the
* entry's path relative to @a abs_path; it is the empty path when reporting
* the top node of the list operation. @a dirent contains some or all of
* the directory entry's details, as determined by the caller. @a lock is
* the entry's lock, if it is locked and if lock information is being
* reported by the caller; otherwise @a lock is NULL. @a abs_path is the
* repository path of the top node of the list operation; it is relative to
* the repository root and begins with "/".
*
* If svn_client_list3() was called with @a include_externals set to TRUE,
* @a external_parent_url and @a external_target will be set.
* @a external_parent_url is url of the directory which has the
* externals definitions. @a external_target is the target subdirectory of
* externals definitions which is relative to the parent directory that holds
* the external item.
*
* If external_parent_url and external_target are defined, the item being
* listed is part of the external described by external_parent_url and
* external_target. Else, the item is not part of any external.
* Moreover, we will never mix items which are part of separate
* externals, and will always finish listing an external before listing
* the next one.
*
* @a scratch_pool may be used for temporary allocations.
*
* @since New in 1.8.
*/
typedef svn_error_t *(*svn_client_list_func2_t)(
void *baton,
const char *path,
const svn_dirent_t *dirent,
const svn_lock_t *lock,
const char *abs_path,
const char *external_parent_url,
const char *external_target,
apr_pool_t *scratch_pool);
/**
* Similar to #svn_client_list_func2_t, but without any information about
* externals definitions.
*
* @deprecated Provided for backward compatibility with the 1.7 API.
*
* @since New in 1.4
*
* */
typedef svn_error_t *(*svn_client_list_func_t)(void *baton,
const char *path,
const svn_dirent_t *dirent,
const svn_lock_t *lock,
const char *abs_path,
apr_pool_t *pool);
/**
* Report the directory entry, and possibly children, for @a
* path_or_url at @a revision. The actual node revision selected is
* determined by the path as it exists in @a peg_revision. If @a
* peg_revision->kind is #svn_opt_revision_unspecified, then it defaults
* to #svn_opt_revision_head for URLs or #svn_opt_revision_working
* for WC targets.
*
* Report directory entries by invoking @a list_func/@a baton with @a path
* relative to @a path_or_url. The dirent for @a path_or_url is reported
* using an empty @a path. If @a path_or_url is a directory, also report
* its children. If @a path_or_url is non-existent, return
* #SVN_ERR_FS_NOT_FOUND.
*
* If @a fetch_locks is TRUE, include locks when reporting directory entries.
*
* If @a include_externals is TRUE, also list all external items
* reached by recursion. @a depth value passed to the original list target
* applies for the externals also.
*
* Use @a pool for temporary allocations.
*
* Use authentication baton cached in @a ctx to authenticate against the
* repository.
*
* If @a depth is #svn_depth_empty, list just @a path_or_url itself.
* If @a depth is #svn_depth_files, list @a path_or_url and its file
* entries. If #svn_depth_immediates, list its immediate file and
* directory entries. If #svn_depth_infinity, list file entries and
* recurse (with #svn_depth_infinity) on directory entries.
*
* @a dirent_fields controls which fields in the #svn_dirent_t's are
* filled in. To have them totally filled in use #SVN_DIRENT_ALL,
* otherwise simply bitwise OR together the combination of @c SVN_DIRENT_
* fields you care about.
*
* @since New in 1.8.
*/
svn_error_t *
svn_client_list3(const char *path_or_url,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_depth_t depth,
apr_uint32_t dirent_fields,
svn_boolean_t fetch_locks,
svn_boolean_t include_externals,
svn_client_list_func2_t list_func,
void *baton,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/** Similar to svn_client_list3(), but with @a include_externals set
* to FALSE, and using a #svn_client_list_func_t as callback.
*
* @deprecated Provided for backwards compatibility with the 1.7 API.
*
* @since New in 1.5.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_list2(const char *path_or_url,
const svn_opt_revision_t *peg_revision,
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
/** The node's kind. */
svn_node_kind_t kind;
/** The size of the file in the repository (untranslated,
* e.g. without adjustment of line endings and keyword
* expansion). Only applicable for file -- not directory -- URLs.
* For working copy paths, @a size will be #SVN_INVALID_FILESIZE. */
svn_filesize_t size;
/** The last revision in which this object changed. */
svn_revnum_t last_changed_rev;
/** The date of the last_changed_rev. */
apr_time_t last_changed_date;
/** The author of the last_changed_rev. */
const char *last_changed_author;
/** An exclusive lock, if present. Could be either local or remote. */
const svn_lock_t *lock;
/** Possible information about the working copy, NULL if not valid. */
const svn_wc_info_t *wc_info;
} svn_client_info2_t;
/**
* Return a duplicate of @a info, allocated in @a pool. No part of the new
* structure will be shared with @a info.
*
* @since New in 1.7.
*/
svn_client_info2_t *
svn_client_info2_dup(const svn_client_info2_t *info,
apr_pool_t *pool);
/**
* The callback invoked by info retrievers. Each invocation
* describes @a abspath_or_url with the information present in @a info.
* Use @a scratch_pool for all temporary allocation.
*
* @since New in 1.7.
*/
typedef svn_error_t *(*svn_client_info_receiver2_t)(
void *baton,
const char *abspath_or_url,
const svn_client_info2_t *info,
apr_pool_t *scratch_pool);
/**
* Invoke @a receiver with @a receiver_baton to return information
* about @a abspath_or_url in @a revision. The information returned is
* system-generated metadata, not the sort of "property" metadata
* created by users. See #svn_client_info2_t.
*
* If both revision arguments are either #svn_opt_revision_unspecified
* or @c NULL, then information will be pulled solely from the working copy;
* no network connections will be made.
*
* Otherwise, information will be pulled from a repository. The
* actual node revision selected is determined by the @a abspath_or_url
* as it exists in @a peg_revision. If @a peg_revision->kind is
* #svn_opt_revision_unspecified, then it defaults to
* #svn_opt_revision_head for URLs or #svn_opt_revision_working for
* WC targets.
*
* If @a abspath_or_url is not a local path, then if @a revision is of
* kind #svn_opt_revision_previous (or some other kind that requires
* a local path), an error will be returned, because the desired
* revision cannot be determined.
*
* Use the authentication baton cached in @a ctx to authenticate
* against the repository.
*
* If @a abspath_or_url is a file, just invoke @a receiver on it. If it
* is a directory, then descend according to @a depth. If @a depth is
* #svn_depth_empty, invoke @a receiver on @a abspath_or_url and
* nothing else; if #svn_depth_files, on @a abspath_or_url and its
* immediate file children; if #svn_depth_immediates, the preceding
* plus on each immediate subdirectory; if #svn_depth_infinity, then
* recurse fully, invoking @a receiver on @a abspath_or_url and
* everything beneath it.
*
* If @a fetch_excluded is TRUE, also also send excluded nodes in the working
* copy to @a receiver, otherwise these are skipped. If @a fetch_actual_only
* is TRUE also send nodes that don't exist as versioned but are still
* tree conflicted.
*
* @a changelists is an array of <tt>const char *</tt> changelist
* names, used as a restrictive filter on items whose info is
* reported; that is, don't report info about any item unless
* it's a member of one of those changelists. If @a changelists is
* empty (or altogether @c NULL), no changelist filtering occurs.
*
* @since New in 1.7.
*/
svn_error_t *
svn_client_info3(const char *abspath_or_url,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_depth_t depth,
svn_boolean_t fetch_excluded,
svn_boolean_t fetch_actual_only,
const apr_array_header_t *changelists,
svn_client_info_receiver2_t receiver,
void *receiver_baton,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
/** Similar to svn_client_info3, but uses an svn_info_receiver_t instead of
* a #svn_client_info_receiver2_t, and @a path_or_url may be a relative path.
*
* @since New in 1.5.
* @deprecated Provided for backward compatibility with the 1.6 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_info2(const char *path_or_url,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *revision,
svn_info_receiver_t receiver,
( run in 1.237 second using v1.01-cache-2.11-cpan-b50b6a40fd4 )