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 )