Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
const char *src_path,
const svn_opt_revision_t *src_revision,
const char *dst_path,
svn_boolean_t force,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/** @} */
/** Properties
*
* Note that certain svn-controlled properties must always have their
* values set and stored in UTF8 with LF line endings. When
* retrieving these properties, callers must convert the values back
* to native locale and native line-endings before displaying them to
* the user. For help with this task, see
* svn_prop_needs_translation(), svn_subst_translate_string(), and
* svn_subst_detranslate_string().
*
* @defgroup svn_client_prop_funcs Property functions
* @{
*/
/**
* Set @a propname to @a propval on @a url. A @a propval of @c NULL will
* delete the property.
*
* Immediately attempt to commit the property change in the repository,
* using the authentication baton in @a ctx and @a
* ctx->log_msg_func3/@a ctx->log_msg_baton3.
*
* If the property has changed on @a url since revision
* @a base_revision_for_url (which must not be #SVN_INVALID_REVNUM), no
* change will be made and an error will be returned.
*
* 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 commit_callback is non-NULL, then call @a commit_callback with
* @a commit_baton and a #svn_commit_info_t for the commit.
*
* If @a propname is an svn-controlled property (i.e. prefixed with
* #SVN_PROP_PREFIX), then the caller is responsible for ensuring that
* the value is UTF8-encoded and uses LF line-endings.
*
* If @a skip_checks is TRUE, do no validity checking. But if @a
* skip_checks is FALSE, and @a propname is not a valid property for @a
* url, return an error, either #SVN_ERR_ILLEGAL_TARGET (if the property is
* not appropriate for @a url), or * #SVN_ERR_BAD_MIME_TYPE (if @a propname
* is "svn:mime-type", but @a propval is not a valid mime-type).
*
* Use @a scratch_pool for all memory allocation.
*
* @since New in 1.7.
*/
svn_error_t *
svn_client_propset_remote(const char *propname,
const svn_string_t *propval,
const char *url,
svn_boolean_t skip_checks,
svn_revnum_t base_revision_for_url,
const apr_hash_t *revprop_table,
svn_commit_callback2_t commit_callback,
void *commit_baton,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
/**
* Set @a propname to @a propval on each (const char *) target in @a
* targets. The targets must be all working copy paths. A @a propval
* of @c NULL will delete the property.
*
* If @a depth is #svn_depth_empty, set the property on each member of
* @a targets only; if #svn_depth_files, set it on @a targets and their
* file children (if any); if #svn_depth_immediates, on @a targets and all
* of their immediate children (both files and directories); if
* #svn_depth_infinity, on @a targets and everything beneath them.
*
* @a changelists is an array of <tt>const char *</tt> changelist
* names, used as a restrictive filter on items whose properties are
* set; that is, don't set 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 propname is an svn-controlled property (i.e. prefixed with
* #SVN_PROP_PREFIX), then the caller is responsible for ensuring that
* the value is UTF8-encoded and uses LF line-endings.
*
* If @a skip_checks is TRUE, do no validity checking. But if @a
* skip_checks is FALSE, and @a propname is not a valid property for @a
* targets, return an error, either #SVN_ERR_ILLEGAL_TARGET (if the
* property is not appropriate for @a targets), or
* #SVN_ERR_BAD_MIME_TYPE (if @a propname is "svn:mime-type", but @a
* propval is not a valid mime-type).
*
* If @a ctx->cancel_func is non-NULL, invoke it passing @a
* ctx->cancel_baton at various places during the operation.
*
* Use @a scratch_pool for all memory allocation.
*
* @since New in 1.7.
*/
svn_error_t *
svn_client_propset_local(const char *propname,
const svn_string_t *propval,
const apr_array_header_t *targets,
svn_depth_t depth,
svn_boolean_t skip_checks,
const apr_array_header_t *changelists,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
/**
* An amalgamation of svn_client_propset_local() and
* svn_client_propset_remote() that takes only a single target, and
* returns the commit info in @a *commit_info_p rather than through a
* callback function.
*
* @since New in 1.5.
* @deprecated Provided for backward compatibility with the 1.6 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_propset3(svn_commit_info_t **commit_info_p,
const char *propname,
const svn_string_t *propval,
const char *target,
svn_depth_t depth,
svn_boolean_t skip_checks,
svn_revnum_t base_revision_for_url,
const apr_array_header_t *changelists,
const apr_hash_t *revprop_table,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Like svn_client_propset3(), but with @a base_revision_for_url
* always #SVN_INVALID_REVNUM; @a commit_info_p always @c NULL; @a
* changelists always @c NULL; @a revprop_table always @c NULL; and @a
* depth set according to @a recurse: if @a recurse is TRUE, @a depth
* is #svn_depth_infinity, else #svn_depth_empty.
*
* @deprecated Provided for backward compatibility with the 1.4 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_propset2(const char *propname,
const svn_string_t *propval,
const char *target,
svn_boolean_t recurse,
svn_boolean_t skip_checks,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
/**
* Like svn_client_propset2(), but with @a skip_checks always FALSE and a
* newly created @a ctx.
*
* @deprecated Provided for backward compatibility with the 1.1 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_client_propset(const char *propname,
const svn_string_t *propval,
const char *target,
svn_boolean_t recurse,
apr_pool_t *pool);
/** Set @a propname to @a propval 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 affected in @a *set_rev. A @a propval of @c NULL will delete the
* property.
*
* If @a original_propval is non-NULL, then just before setting the
* new value, check that the old value matches @a original_propval;
* if they do not match, return the error #SVN_ERR_RA_OUT_OF_DATE.
* This is to help clients support interactive editing of revprops:
* without this check, the window during which the property may change
* underneath the user is as wide as the amount of time the user
* spends editing the property. With this check, the window is
* reduced to a small, constant amount of time right before we set the
* new value. (To check that an old value is still non-existent, set
* @a original_propval->data to NULL, and @a original_propval->len is
* ignored.)
* If the server advertises #SVN_RA_CAPABILITY_ATOMIC_REVPROPS, the
* check of @a original_propval is done atomically.
*
* Note: the representation of "property is not set" in @a
* original_propval differs from the representation in other APIs
* (such as svn_fs_change_rev_prop2() and svn_ra_change_rev_prop2()).
*
* If @a force is TRUE, allow newlines in the author property.
*
* If @a propname is an svn-controlled property (i.e. prefixed with
* #SVN_PROP_PREFIX), then the caller is responsible for ensuring that
* the value UTF8-encoded and uses LF line-endings.
*
* Note that unlike its cousin svn_client_propset3(), this routine
* doesn't affect the working copy at all; it's a pure network
* operation that changes an *unversioned* property attached to a
* revision. This can be used to tweak log messages, dates, authors,
* and the like. Be careful: it's a lossy operation.
* @a ctx->notify_func2 and @a ctx->notify_baton2 are the notification
* functions and baton which are called upon successful setting of the
* property.
*
* Also note that unless the administrator creates a
* pre-revprop-change hook in the repository, this feature will fail.
*
* @since New in 1.6.
*/
svn_error_t *
svn_client_revprop_set2(const char *propname,
const svn_string_t *propval,
const svn_string_t *original_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);
/**
* 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
( run in 0.382 second using v1.01-cache-2.11-cpan-71847e10f99 )