summaryrefslogtreecommitdiff
path: root/subversion/include/private/svn_wc_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/include/private/svn_wc_private.h')
-rw-r--r--subversion/include/private/svn_wc_private.h189
1 files changed, 98 insertions, 91 deletions
diff --git a/subversion/include/private/svn_wc_private.h b/subversion/include/private/svn_wc_private.h
index fce42b0..28d2247 100644
--- a/subversion/include/private/svn_wc_private.h
+++ b/subversion/include/private/svn_wc_private.h
@@ -82,8 +82,6 @@ svn_wc__get_file_external_editor(const svn_delta_editor_t **editor,
const char *recorded_url,
const svn_opt_revision_t *recorded_peg_rev,
const svn_opt_revision_t *recorded_rev,
- svn_wc_conflict_resolver_func2_t conflict_func,
- void *conflict_baton,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -354,7 +352,6 @@ svn_wc__get_wcroot(const char **wcroot_abspath,
* before the 1.7 release.
*/
-
/*
* Convert from svn_wc_conflict_description2_t to
* svn_wc_conflict_description_t. This is needed by some backwards-compat
@@ -370,7 +367,11 @@ svn_wc__cd2_to_cd(const svn_wc_conflict_description2_t *conflict,
/*
* Convert from svn_wc_status3_t to svn_wc_status2_t.
* Allocate the result in RESULT_POOL.
+ *
+ * Deprecated because svn_wc_status2_t is deprecated and the only
+ * calls are from other deprecated functions.
*/
+SVN_DEPRECATED
svn_error_t *
svn_wc__status2_from_3(svn_wc_status2_t **status,
const svn_wc_status3_t *old_status,
@@ -379,15 +380,13 @@ svn_wc__status2_from_3(svn_wc_status2_t **status,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-
/**
* Set @a *children to a new array of the immediate children of the working
* node at @a dir_abspath. The elements of @a *children are (const char *)
* absolute paths.
*
- * Include children that are scheduled for deletion. Iff @a show_hidden
- * is true, also include children that are 'excluded' or 'server-excluded' or
- * 'not-present'.
+ * Include children that are scheduled for deletion, but not those that
+ * are excluded, server-excluded or not-present.
*
* Return every path that refers to a child of the working node at
* @a dir_abspath. Do not include a path just because it was a child of a
@@ -401,24 +400,20 @@ svn_error_t *
svn_wc__node_get_children_of_working_node(const apr_array_header_t **children,
svn_wc_context_t *wc_ctx,
const char *dir_abspath,
- svn_boolean_t show_hidden,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
/**
- * Like svn_wc__node_get_children_of_working_node(), except also include any
- * path that was a child of a deleted directory that existed at
- * @a dir_abspath, even if that directory is now scheduled to be replaced by
- * the working node at @a dir_abspath.
+ * Gets the immediate 'not-present' children of a node.
+ *
+ * #### Needed during 'svn cp WC URL' to handle mixed revision cases
*/
svn_error_t *
-svn_wc__node_get_children(const apr_array_header_t **children,
- svn_wc_context_t *wc_ctx,
- const char *dir_abspath,
- svn_boolean_t show_hidden,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
+svn_wc__node_get_not_present_children(const apr_array_header_t **children,
+ svn_wc_context_t *wc_ctx,
+ const char *dir_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/**
* Fetch the repository information for the working version
@@ -442,18 +437,6 @@ svn_wc__node_get_repos_info(svn_revnum_t *revision,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-
-
-/**
- * Get the depth of @a local_abspath using @a wc_ctx. If @a local_abspath is
- * not in the working copy, return @c SVN_ERR_WC_PATH_NOT_FOUND.
- */
-svn_error_t *
-svn_wc__node_get_depth(svn_depth_t *depth,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *scratch_pool);
-
/**
* Get the changed revision, date and author for @a local_abspath using @a
* wc_ctx. Allocate the return values in @a result_pool; use @a scratch_pool
@@ -501,6 +484,8 @@ svn_wc__node_get_url(const char **url,
* If not NULL, sets @a revision, @a repos_relpath, @a repos_root_url and
* @a repos_uuid to the original (if a copy) or their current values.
*
+ * If not NULL, set @a depth, to the recorded depth on @a local_abspath.
+ *
* If @a copy_root_abspath is not NULL, and @a *is_copy indicates that the
* node was copied, set @a *copy_root_abspath to the local absolute path of
* the root of the copied subtree containing the node. If the copied node is
@@ -519,6 +504,7 @@ svn_wc__node_get_origin(svn_boolean_t *is_copy,
const char **repos_relpath,
const char **repos_root_url,
const char **repos_uuid,
+ svn_depth_t *depth,
const char **copy_root_abspath,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
@@ -527,38 +513,6 @@ svn_wc__node_get_origin(svn_boolean_t *is_copy,
apr_pool_t *scratch_pool);
/**
- * Set @a *is_deleted to TRUE if @a local_abspath is deleted, using
- * @a wc_ctx. If @a local_abspath is not in the working copy, return
- * @c SVN_ERR_WC_PATH_NOT_FOUND. Use @a scratch_pool for all temporary
- * allocations.
- */
-svn_error_t *
-svn_wc__node_is_status_deleted(svn_boolean_t *is_deleted,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *scratch_pool);
-
-/**
- * Set @a *deleted_ancestor_abspath to the root of the delete operation
- * that deleted @a local_abspath. If @a local_abspath itself was deleted
- * and has no deleted ancestor, @a *deleted_ancestor_abspath will equal
- * @a local_abspath. If @a local_abspath was not deleted,
- * set @a *deleted_ancestor_abspath to @c NULL.
- *
- * A node is considered 'deleted' if it is deleted or moved-away, and is
- * not replaced.
- *
- * @a *deleted_ancestor_abspath is allocated in @a result_pool.
- * Use @a scratch_pool for all temporary allocations.
- */
-svn_error_t *
-svn_wc__node_get_deleted_ancestor(const char **deleted_ancestor_abspath,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/**
* Set @a *not_present to TRUE when @a local_abspath has status
* svn_wc__db_status_not_present. Set @a *user_excluded to TRUE when
* @a local_abspath has status svn_wc__db_status_excluded. Set
@@ -641,7 +595,6 @@ svn_wc__node_get_base(svn_node_kind_t *kind,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_boolean_t ignore_enoent,
- svn_boolean_t show_hidden,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
@@ -771,20 +724,6 @@ svn_wc__call_with_write_lock(svn_wc__with_write_lock_func_t func,
} while (0)
-/**
- * Calculates the schedule and copied status of a node as that would
- * have been stored in an svn_wc_entry_t instance.
- *
- * If not @c NULL, @a schedule and @a copied are set to their calculated
- * values.
- */
-svn_error_t *
-svn_wc__node_get_schedule(svn_wc_schedule_t *schedule,
- svn_boolean_t *copied,
- svn_wc_context_t *wc_ctx,
- const char *local_abspath,
- apr_pool_t *scratch_pool);
-
/** A callback invoked by svn_wc__prop_list_recursive().
* It is equivalent to svn_proplist_receiver_t declared in svn_client.h,
* but kept private within the svn_wc__ namespace because it is used within
@@ -978,15 +917,17 @@ svn_wc__get_excluded_subtrees(apr_hash_t **server_excluded_subtrees,
/* Indicate in @a *is_modified whether the working copy has local
* modifications, using context @a wc_ctx.
- * Use @a scratch_pool for temporary allocations.
*
- * This function provides a subset of the functionality of
- * svn_wc_revision_status2() and is more efficient if the caller
- * doesn't need all information returned by svn_wc_revision_status2(). */
+ * If IGNORE_UNVERSIONED, unversioned paths inside the tree rooted by
+ * LOCAL_ABSPATH are not seen as a change, otherwise they are.
+ * (svn:ignored paths are always ignored)
+ *
+ * Use @a scratch_pool for temporary allocations. */
svn_error_t *
svn_wc__has_local_mods(svn_boolean_t *is_modified,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
+ svn_boolean_t ignore_unversioned,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *scratch_pool);
@@ -1294,6 +1235,44 @@ svn_wc__resolve_relative_external_url(const char **resolved_url,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+typedef enum svn_wc__external_description_format_t
+{
+ /* LOCALPATH [-r PEG] URL */
+ svn_wc__external_description_format_1 = 0,
+
+ /* [-r REV] URL[@PEG] LOCALPATH, introduced in Subversion 1.5 */
+ svn_wc__external_description_format_2
+} svn_wc__external_description_format_t;
+
+/* Additional information about what the external's parser has parsed. */
+typedef struct svn_wc__externals_parser_info_t
+{
+ /* The syntax format used by the external description. */
+ svn_wc__external_description_format_t format;
+
+ /* The string used for defining the operative revision, i.e.
+ "-rN", "-rHEAD", or "-r{DATE}".
+ NULL if revision was not given. */
+ const char *rev_str;
+
+ /* The string used for defining the peg revision (equals rev_str in
+ format 1, is "@N", or "@HEAD" or "@{DATE}" in format 2).
+ NULL if peg revision was not given. */
+ const char *peg_rev_str;
+
+} svn_wc__externals_parser_info_t;
+
+/* Like svn_wc_parse_externals_description3() but returns an additional array
+ * with elements of type svn_wc__externals_parser_info_t in @a *parser_infos_p.
+ * @a parser_infos_p may be NULL if not required by the caller.
+ */
+svn_error_t *
+svn_wc__parse_externals_description(apr_array_header_t **externals_p,
+ apr_array_header_t **parser_infos_p,
+ const char *defining_directory,
+ const char *desc,
+ svn_boolean_t canonicalize_url,
+ apr_pool_t *pool);
/**
* Set @a *editor and @a *edit_baton to an editor that generates
@@ -1318,8 +1297,8 @@ svn_wc__resolve_relative_external_url(const char **resolved_url,
*
* Assuming the target is a directory, then:
*
- * - If @a get_all is FALSE, then only locally-modified entries will be
- * returned. If TRUE, then all entries will be returned.
+ * - If @a get_all is @c FALSE, then only locally-modified entries will be
+ * returned. If @c TRUE, then all entries will be returned.
*
* - If @a depth is #svn_depth_empty, a status structure will
* be returned for the target only; if #svn_depth_files, for the
@@ -1334,6 +1313,9 @@ svn_wc__resolve_relative_external_url(const char **resolved_url,
* If the given @a depth is incompatible with the depth found in a
* working copy directory, the found depth always governs.
*
+ * If @a check_working_copy is not set, do not scan the working copy
+ * for local modifications, taking only the BASE tree into account.
+ *
* If @a no_ignore is set, statuses that would typically be ignored
* will instead be reported.
*
@@ -1368,6 +1350,7 @@ svn_wc__get_status_editor(const svn_delta_editor_t **editor,
const char *target_basename,
svn_depth_t depth,
svn_boolean_t get_all,
+ svn_boolean_t check_working_copy,
svn_boolean_t no_ignore,
svn_boolean_t depth_as_sticky,
svn_boolean_t server_performs_filtering,
@@ -1557,7 +1540,7 @@ svn_wc__get_switch_editor(const svn_delta_editor_t **editor,
* Diffs will be reported as valid relpaths, with @a anchor_abspath being
* the root ("").
*
- * @a callbacks/@a callback_baton is the callback table to use.
+ * @a diff_processor will retrieve the diff report.
*
* If @a depth is #svn_depth_empty, just diff exactly @a target or
* @a anchor_path if @a target is empty. If #svn_depth_files then do the same
@@ -1583,8 +1566,12 @@ svn_wc__get_switch_editor(const svn_delta_editor_t **editor,
* if they weren't modified after being copied. This allows the callbacks
* to generate appropriate --git diff headers for such files.
*
- * Normally, the difference from repository->working_copy is shown.
- * If @a reverse_order is TRUE, then show working_copy->repository diffs.
+ * Normally, the difference from repository->working_copy is shown. If
+ * @a reverse_order is TRUE, then we want to show working_copy->repository
+ * diffs. Most of the reversal is done by the caller; here we just swap the
+ * order of reporting a replacement so that the local addition is reported
+ * before the remote delete. (The caller's diff processor can then transform
+ * adds into deletes and deletes into adds, but it can't reorder the output.)
*
* If @a cancel_func is non-NULL, it will be used along with @a cancel_baton
* to periodically check if the client has canceled the operation.
@@ -1628,14 +1615,11 @@ svn_wc__get_diff_editor(const svn_delta_editor_t **editor,
const char *target,
svn_depth_t depth,
svn_boolean_t ignore_ancestry,
- svn_boolean_t show_copies_as_adds,
- svn_boolean_t use_git_diff_format,
svn_boolean_t use_text_base,
svn_boolean_t reverse_order,
svn_boolean_t server_performs_filtering,
const apr_array_header_t *changelist_filter,
- const svn_wc_diff_callbacks4_t *callbacks,
- void *callback_baton,
+ const svn_diff_tree_processor_t *diff_processor,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *result_pool,
@@ -1840,6 +1824,29 @@ svn_wc__acquire_write_lock_for_resolve(const char **lock_root_abspath,
const char *local_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+
+/* The implemementation of svn_wc_diff6(), but reporting to a diff processor
+ *
+ * If ROOT_RELPATH is not NULL, set *ROOT_RELPATH to the target of the diff
+ * within the diff namespace. ("" or a single path component).
+ *
+ * If ROOT_IS_FILE is NOT NULL set it
+ * the first processor call. (The anchor is LOCAL_ABSPATH or an ancestor of it)
+ */
+svn_error_t *
+svn_wc__diff7(const char **root_relpath,
+ svn_boolean_t *root_is_dir,
+ svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const apr_array_header_t *changelist_filter,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */