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 )