You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2012/07/12 22:24:57 UTC
svn commit: r1360909 [9/14] - in /subversion/branches/inheritable-props: ./
build/generator/ build/generator/templates/ notes/wc-ng/
subversion/bindings/javahl/native/
subversion/bindings/javahl/tests/org/apache/subversion/javahl/
subversion/bindings/j...
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql?rev=1360909&r1=1360908&r2=1360909&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc-queries.sql Thu Jul 12 20:24:53 2012
@@ -102,21 +102,11 @@ ORDER BY op_depth
LIMIT 1
-- STMT_SELECT_ACTUAL_NODE
-SELECT prop_reject, changelist, conflict_old, conflict_new,
-conflict_working, tree_conflict_data, properties
+SELECT changelist, properties, conflict_data,
+conflict_old, conflict_new, conflict_working, prop_reject, tree_conflict_data
FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2
--- STMT_SELECT_ACTUAL_TREE_CONFLICT
-SELECT tree_conflict_data
-FROM actual_node
-WHERE wc_id = ?1 AND local_relpath = ?2 AND tree_conflict_data IS NOT NULL
-
--- STMT_SELECT_ACTUAL_CHANGELIST
-SELECT changelist
-FROM actual_node
-WHERE wc_id = ?1 AND local_relpath = ?2 AND changelist IS NOT NULL
-
-- STMT_SELECT_NODE_CHILDREN_INFO
/* Getting rows in an advantageous order using
ORDER BY local_relpath, op_depth DESC
@@ -137,9 +127,8 @@ FROM nodes_current
WHERE wc_id = ?1 AND parent_relpath = ?2
-- STMT_SELECT_ACTUAL_CHILDREN_INFO
-SELECT prop_reject, changelist, conflict_old, conflict_new,
-conflict_working, tree_conflict_data, properties, local_relpath,
-conflict_data
+SELECT local_relpath, changelist, properties, conflict_data,
+conflict_old, conflict_new, conflict_working, prop_reject, tree_conflict_data
FROM actual_node
WHERE wc_id = ?1 AND parent_relpath = ?2
@@ -164,6 +153,51 @@ INSERT OR REPLACE INTO nodes (
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11, ?12, ?13, ?14,
?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22)
+-- STMT_SELECT_BASE_PRESENT
+SELECT local_relpath, kind FROM nodes n
+WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
+ AND op_depth = 0
+ AND presence in ('normal', 'incomplete')
+ AND NOT EXISTS(SELECT 1 FROM NODES w
+ WHERE w.wc_id = ?1 AND w.local_relpath = n.local_relpath
+ AND op_depth > 0)
+ORDER BY local_relpath DESC
+
+-- STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE
+/* The ACTUAL_NODE applies to BASE, unless there is in at least one op_depth
+ a WORKING node that could have a conflict */
+DELETE FROM actual_node
+WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
+ AND EXISTS(SELECT 1 FROM NODES b
+ WHERE b.wc_id = ?1
+ AND b.local_relpath = actual_node.local_relpath
+ AND op_depth = 0)
+ AND NOT EXISTS(SELECT 1 FROM NODES w
+ WHERE w.wc_id = ?1
+ AND w.local_relpath = actual_node.local_relpath
+ AND op_depth > 0
+ AND presence in ('normal', 'incomplete', 'not-present'))
+
+-- STMT_DELETE_WORKING_BASE_DELETE
+DELETE FROM nodes
+WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
+ AND presence = 'base-deleted'
+ AND op_depth > 0
+ AND op_depth = (SELECT MIN(op_depth) FROM nodes n
+ WHERE n.wc_id = ?1
+ AND n.local_relpath = nodes.local_relpath
+ AND op_depth > 0)
+
+-- STMT_DELETE_WORKING_RECURSIVE
+DELETE FROM nodes
+WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
+ AND op_depth > 0
+
+-- STMT_DELETE_BASE_RECURSIVE
+DELETE FROM nodes
+WHERE wc_id = ?1 AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
+ AND op_depth = 0
+
-- STMT_SELECT_OP_DEPTH_CHILDREN
SELECT local_relpath FROM nodes
WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3
@@ -356,35 +390,19 @@ WHERE wc_id = ?1 AND local_relpath = ?2
UPDATE nodes SET translated_size = ?3, last_mod_time = ?4
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?5
--- STMT_UPDATE_ACTUAL_TREE_CONFLICTS
-UPDATE actual_node SET tree_conflict_data = ?3
-WHERE wc_id = ?1 AND local_relpath = ?2
-
--- STMT_INSERT_ACTUAL_TREE_CONFLICTS
-INSERT INTO actual_node (
- wc_id, local_relpath, tree_conflict_data, parent_relpath)
-VALUES (?1, ?2, ?3, ?4)
-
--- STMT_UPDATE_ACTUAL_TEXT_CONFLICTS
-UPDATE actual_node SET conflict_old = ?3, conflict_new = ?4,
- conflict_working = ?5
-WHERE wc_id = ?1 AND local_relpath = ?2
-
--- STMT_INSERT_ACTUAL_TEXT_CONFLICTS
+-- STMT_INSERT_ACTUAL_CONFLICT
INSERT INTO actual_node (
- wc_id, local_relpath, conflict_old, conflict_new, conflict_working,
- parent_relpath)
-VALUES (?1, ?2, ?3, ?4, ?5, ?6)
-
--- STMT_UPDATE_ACTUAL_PROPERTY_CONFLICTS
-UPDATE actual_node SET prop_reject = ?3
+ wc_id, local_relpath, conflict_data,
+ conflict_old, conflict_new, conflict_working, prop_reject,
+ tree_conflict_data, parent_relpath)
+VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9)
+
+-- STMT_UPDATE_ACTUAL_CONFLICT
+UPDATE actual_node SET conflict_data = ?3,
+ conflict_old = ?4, conflict_new = ?5, conflict_working = ?6,
+ prop_reject = ?7, tree_conflict_data = ?8
WHERE wc_id = ?1 AND local_relpath = ?2
--- STMT_INSERT_ACTUAL_PROPERTY_CONFLICTS
-INSERT INTO actual_node (
- wc_id, local_relpath, prop_reject, parent_relpath)
-VALUES (?1, ?2, ?3, ?4)
-
-- STMT_UPDATE_ACTUAL_CHANGELISTS
UPDATE actual_node SET changelist = ?3
WHERE wc_id = ?1
@@ -449,11 +467,9 @@ INSERT INTO changelist_list(wc_id, local
VALUES (?1, ?2, ?3, ?4)
-- STMT_FINALIZE_CHANGELIST
-DROP TRIGGER IF EXISTS trigger_changelist_list_actual_cl_insert;
-DROP TRIGGER IF EXISTS trigger_changelist_list_actual_cl_set;
-DROP TRIGGER IF EXISTS trigger_changelist_list_actual_cl_clear;
-DROP TABLE IF EXISTS changelist_list;
-DROP TABLE IF EXISTS targets_list
+DROP TRIGGER trigger_changelist_list_change;
+DROP TABLE changelist_list;
+DROP TABLE targets_list
-- STMT_SELECT_CHANGELIST_LIST
SELECT wc_id, local_relpath, notify, changelist
@@ -472,7 +488,7 @@ CREATE TEMPORARY TABLE targets_list (
/* need more indicies? */
-- STMT_DROP_TARGETS_LIST
-DROP TABLE IF EXISTS targets_list
+DROP TABLE targets_list
-- STMT_INSERT_TARGET
INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind)
@@ -546,23 +562,21 @@ SELECT local_relpath, parent_relpath fro
-- STMT_INSERT_ACTUAL_EMPTIES
INSERT OR IGNORE INTO actual_node (
- wc_id, local_relpath, parent_relpath, properties,
- conflict_old, conflict_new, conflict_working,
- prop_reject, changelist, text_mod, tree_conflict_data )
-SELECT wc_id, local_relpath, parent_relpath, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL
+ wc_id, local_relpath, parent_relpath)
+SELECT wc_id, local_relpath, parent_relpath
FROM targets_list
-- STMT_DELETE_ACTUAL_EMPTY
DELETE FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2
AND properties IS NULL
+ AND conflict_data IS NULL
AND conflict_old IS NULL
AND conflict_new IS NULL
AND prop_reject IS NULL
+ AND tree_conflict_data IS NULL
AND changelist IS NULL
AND text_mod IS NULL
- AND tree_conflict_data IS NULL
AND older_checksum IS NULL
AND right_checksum IS NULL
AND left_checksum IS NULL
@@ -572,12 +586,13 @@ DELETE FROM actual_node
WHERE wc_id = ?1
AND IS_STRICT_DESCENDANT_OF(local_relpath, ?2)
AND properties IS NULL
+ AND conflict_data IS NULL
AND conflict_old IS NULL
AND conflict_new IS NULL
AND prop_reject IS NULL
+ AND tree_conflict_data IS NULL
AND changelist IS NULL
AND text_mod IS NULL
- AND tree_conflict_data IS NULL
AND older_checksum IS NULL
AND right_checksum IS NULL
AND left_checksum IS NULL
@@ -621,11 +636,6 @@ WHERE wc_id = ?1
AND (local_relpath = ?2
OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
--- STMT_DELETE_ACTUAL_NODE_WITHOUT_CONFLICT
-DELETE FROM actual_node
-WHERE wc_id = ?1 AND local_relpath = ?2
- AND tree_conflict_data IS NULL
-
-- STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST
DELETE FROM actual_node
WHERE wc_id = ?1
@@ -650,11 +660,12 @@ WHERE wc_id = ?1
UPDATE actual_node
SET properties = NULL,
text_mod = NULL,
- tree_conflict_data = NULL,
+ conflict_data = NULL,
conflict_old = NULL,
conflict_new = NULL,
conflict_working = NULL,
prop_reject = NULL,
+ tree_conflict_data = NULL,
older_checksum = NULL,
left_checksum = NULL,
right_checksum = NULL
@@ -664,11 +675,12 @@ WHERE wc_id = ?1 AND local_relpath = ?2
UPDATE actual_node
SET properties = NULL,
text_mod = NULL,
- tree_conflict_data = NULL,
+ conflict_data = NULL,
conflict_old = NULL,
conflict_new = NULL,
conflict_working = NULL,
prop_reject = NULL,
+ tree_conflict_data = NULL,
older_checksum = NULL,
left_checksum = NULL,
right_checksum = NULL
@@ -733,39 +745,27 @@ WHERE refcount = 0
DELETE FROM pristine
WHERE checksum = ?1 AND refcount = 0
--- STMT_SELECT_ACTUAL_CONFLICT_VICTIMS
-SELECT local_relpath
+-- STMT_SELECT_CONFLICT_VICTIMS
+SELECT local_relpath, conflict_data
FROM actual_node
WHERE wc_id = ?1 AND parent_relpath = ?2 AND
- NOT ((prop_reject IS NULL) AND (conflict_old IS NULL)
+ NOT ((conflict_data IS NULL) AND (conflict_old IS NULL)
AND (conflict_new IS NULL) AND (conflict_working IS NULL)
- AND (tree_conflict_data IS NULL))
+ AND (prop_reject IS NULL) AND (tree_conflict_data IS NULL))
-- STMT_SELECT_CONFLICT_MARKER_FILES1
SELECT prop_reject
FROM actual_node
WHERE wc_id = ?1 AND local_relpath = ?2
- AND ((prop_reject IS NOT NULL) OR (conflict_old IS NOT NULL)
- OR (conflict_new IS NOT NULL) OR (conflict_working IS NOT NULL))
+ AND (prop_reject IS NOT NULL)
-- STMT_SELECT_CONFLICT_MARKER_FILES2
-SELECT prop_reject
+SELECT prop_reject, conflict_old, conflict_new, conflict_working
FROM actual_node
WHERE wc_id = ?1 AND parent_relpath = ?2
AND ((prop_reject IS NOT NULL) OR (conflict_old IS NOT NULL)
OR (conflict_new IS NOT NULL) OR (conflict_working IS NOT NULL))
--- STMT_SELECT_ACTUAL_CHILDREN_TREE_CONFLICT
-SELECT local_relpath, tree_conflict_data
-FROM actual_node
-WHERE wc_id = ?1 AND parent_relpath = ?2 AND tree_conflict_data IS NOT NULL
-
--- STMT_SELECT_CONFLICT_DETAILS
-SELECT prop_reject, conflict_old, conflict_new, conflict_working,
- tree_conflict_data
-FROM actual_node
-WHERE wc_id = ?1 AND local_relpath = ?2
-
-- STMT_CLEAR_TEXT_CONFLICT
UPDATE actual_node SET
conflict_old = NULL,
@@ -778,6 +778,10 @@ UPDATE actual_node SET
prop_reject = NULL
WHERE wc_id = ?1 AND local_relpath = ?2
+-- STMT_CLEAR_TREE_CONFLICT
+UPDATE actual_node SET tree_conflict_data = NULL
+WHERE wc_id = ?1 AND local_relpath = ?2
+
-- STMT_INSERT_WC_LOCK
INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels)
VALUES (?1, ?2, ?3)
@@ -939,17 +943,6 @@ SELECT wc_id, ?3 /*local_relpath*/, ?4 /
FROM nodes
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?8
--- STMT_INSERT_ACTUAL_NODE_FROM_ACTUAL_NODE
-INSERT OR REPLACE INTO actual_node (
- wc_id, local_relpath, parent_relpath, properties,
- conflict_old, conflict_new, conflict_working,
- prop_reject, changelist, text_mod, tree_conflict_data )
-SELECT wc_id, ?3 /*local_relpath*/, ?4 /*parent_relpath*/, properties,
- conflict_old, conflict_new, conflict_working,
- prop_reject, changelist, text_mod, tree_conflict_data
-FROM actual_node
-WHERE wc_id = ?1 AND local_relpath = ?2
-
-- STMT_UPDATE_BASE_REVISION
UPDATE nodes SET revision = ?3
WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0
@@ -1066,11 +1059,9 @@ WHERE (wc_id = ?1 AND local_relpath = ?2
-- STMT_INSERT_ACTUAL_NODE
INSERT OR REPLACE INTO actual_node (
- wc_id, local_relpath, parent_relpath, properties, conflict_old,
- conflict_new,
- conflict_working, prop_reject, changelist, text_mod,
- tree_conflict_data)
-VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, NULL, ?10)
+ wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data,
+ conflict_old, conflict_new, conflict_working, prop_reject, tree_conflict_data)
+VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10, ?11)
/* ------------------------------------------------------------------------- */
@@ -1151,8 +1142,7 @@ SELECT local_relpath, properties FROM ta
ORDER BY local_relpath
-- STMT_DROP_TARGET_PROP_CACHE
-DROP TABLE IF EXISTS target_prop_cache;
-
+DROP TABLE target_prop_cache;
-- STMT_CREATE_REVERT_LIST
DROP TABLE IF EXISTS revert_list;
@@ -1160,6 +1150,7 @@ CREATE TEMPORARY TABLE revert_list (
/* need wc_id if/when revert spans multiple working copies */
local_relpath TEXT NOT NULL,
actual INTEGER NOT NULL, /* 1 if an actual row, 0 if a nodes row */
+ conflict_data BLOB,
conflict_old TEXT,
conflict_new TEXT,
conflict_working TEXT,
@@ -1182,39 +1173,51 @@ DROP TRIGGER IF EXISTS trigger_revert_
CREATE TEMPORARY TRIGGER trigger_revert_list_actual_delete
BEFORE DELETE ON actual_node
BEGIN
- INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_old,
- conflict_new, conflict_working,
- prop_reject, notify)
- SELECT OLD.local_relpath, 1,
+ INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data,
+ conflict_old, conflict_new,
+ conflict_working, prop_reject, notify)
+ SELECT OLD.local_relpath, 1, OLD.conflict_data,
OLD.conflict_old, OLD.conflict_new, OLD.conflict_working,
OLD.prop_reject,
CASE
- WHEN OLD.properties IS NOT NULL OR OLD.tree_conflict_data IS NOT NULL
- THEN 1 ELSE NULL END;
+ WHEN OLD.properties IS NOT NULL
+ THEN 1
+ WHEN NOT EXISTS(SELECT 1 FROM NODES n
+ WHERE n.wc_id = OLD.wc_id
+ AND n.local_relpath = OLD.local_relpath)
+ THEN 1
+ ELSE NULL
+ END;
END;
DROP TRIGGER IF EXISTS trigger_revert_list_actual_update;
CREATE TEMPORARY TRIGGER trigger_revert_list_actual_update
BEFORE UPDATE ON actual_node
BEGIN
- INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_old,
- conflict_new, conflict_working,
- prop_reject, notify)
- SELECT OLD.local_relpath, 1,
+ INSERT OR REPLACE INTO revert_list(local_relpath, actual, conflict_data,
+ conflict_old, conflict_new,
+ conflict_working, prop_reject, notify)
+ SELECT OLD.local_relpath, 1, OLD.conflict_data,
OLD.conflict_old, OLD.conflict_new, OLD.conflict_working,
OLD.prop_reject,
CASE
- WHEN OLD.properties IS NOT NULL OR OLD.tree_conflict_data IS NOT NULL
- THEN 1 ELSE NULL END;
+ WHEN OLD.properties IS NOT NULL
+ THEN 1
+ WHEN NOT EXISTS(SELECT 1 FROM NODES n
+ WHERE n.wc_id = OLD.wc_id
+ AND n.local_relpath = OLD.local_relpath)
+ THEN 1
+ ELSE NULL
+ END;
END
-- STMT_DROP_REVERT_LIST_TRIGGERS
-DROP TRIGGER IF EXISTS trigger_revert_list_nodes;
-DROP TRIGGER IF EXISTS trigger_revert_list_actual_delete;
-DROP TRIGGER IF EXISTS trigger_revert_list_actual_update
+DROP TRIGGER trigger_revert_list_nodes;
+DROP TRIGGER trigger_revert_list_actual_delete;
+DROP TRIGGER trigger_revert_list_actual_update
-- STMT_SELECT_REVERT_LIST
-SELECT conflict_old, conflict_new, conflict_working, prop_reject, notify,
- actual, op_depth, repos_id, kind
+SELECT actual, notify, kind, op_depth, repos_id, conflict_data,
+ conflict_old, conflict_new, conflict_working, prop_reject
FROM revert_list
WHERE local_relpath = ?1
ORDER BY actual DESC
@@ -1273,7 +1276,7 @@ SELECT local_relpath FROM delete_list
ORDER BY local_relpath
-- STMT_FINALIZE_DELETE
-DROP TABLE IF EXISTS delete_list
+DROP TABLE delete_list
/* ------------------------------------------------------------------------- */
Modified: subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h?rev=1360909&r1=1360908&r2=1360909&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_wc/wc.h Thu Jul 12 20:24:53 2012
@@ -151,6 +151,9 @@ extern "C" {
*
* == 1.7.x shipped with format 29
*
+ * The bump to 30 switched the conflict storage to a skel inside conflict_data.
+ * Also clears some known invalid state.
+ *
* Please document any further format changes here.
*/
@@ -182,6 +185,9 @@ extern "C" {
/* A version < this has no work queue (see workqueue.h). */
#define SVN_WC__HAS_WORK_QUEUE 13
+/* The first version that uses conflict skels for all conflicts */
+#define SVN_WC__USES_CONFLICT_SKELS 30
+
/* Return true iff error E indicates an "is not a working copy" type
of error, either because something wasn't a working copy at all, or
because it's a working copy from a previous version (in need of
@@ -392,16 +398,6 @@ svn_wc__internal_file_modified_p(svn_boo
When MERGE_OPTIONS are specified, they are used by the internal
diff3 routines, or passed to the external diff3 tool.
- If CONFLICT_FUNC is non-NULL, then call it with CONFLICT_BATON if a
- conflict is encountered, giving the callback a chance to resolve
- the conflict (before marking the file 'conflicted').
-
- When LEFT_VERSION and RIGHT_VERSION are non-NULL, pass them to the
- conflict resolver as older_version and their_version.
-
- ## TODO: We should store the information in LEFT_VERSION and RIGHT_VERSION
- in the working copy for future retrieval via svn info.
-
WRI_ABSPATH describes in which working copy information should be
retrieved. (Interesting for merging file externals).
@@ -418,12 +414,11 @@ svn_wc__internal_file_modified_p(svn_boo
*/
svn_error_t *
svn_wc__internal_merge(svn_skel_t **work_items,
+ svn_skel_t **conflict_skel,
enum svn_wc_merge_outcome_t *merge_outcome,
svn_wc__db_t *db,
const char *left_abspath,
- const svn_wc_conflict_version_t *left_version,
const char *right_abspath,
- const svn_wc_conflict_version_t *right_version,
const char *target_abspath,
const char *wri_abspath,
const char *left_label,
@@ -434,8 +429,6 @@ svn_wc__internal_merge(svn_skel_t **work
const char *diff3_cmd,
const apr_array_header_t *merge_options,
const apr_array_header_t *prop_diff,
- svn_wc_conflict_resolver_func2_t conflict_func,
- void *conflict_baton,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *result_pool,
@@ -660,6 +653,20 @@ svn_wc__upgrade_sdb(int *result_format,
int start_format,
apr_pool_t *scratch_pool);
+/* Create a conflict skel from the old separated data */
+svn_error_t *
+svn_wc__upgrade_conflict_skel_from_raw(svn_skel_t **conflicts,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *local_relpath,
+ const char *conflict_old,
+ const char *conflict_wrk,
+ const char *conflict_new,
+ const char *prej_file,
+ const char *tree_conflict_data,
+ apr_size_t tree_conflict_len,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
svn_error_t *
svn_wc__wipe_postupgrade(const char *dir_abspath,
@@ -697,6 +704,22 @@ svn_wc__write_check(svn_wc__db_t *db,
const char *local_abspath,
apr_pool_t *scratch_pool);
+/* Read into CONFLICTS svn_wc_conflict_description2_t* structs
+ * for all conflicts that have LOCAL_ABSPATH as victim.
+ *
+ * Victim must be versioned or be part of a tree conflict.
+ *
+ * Allocate *CONFLICTS in RESULT_POOL and do temporary allocations in
+ * SCRATCH_POOL
+ */
+svn_error_t *
+svn_wc__read_conflicts(const apr_array_header_t **conflicts,
+ svn_wc__db_t *db,
+ const char *local_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+
/* Perform the actual merge of file changes between an original file,
identified by ORIGINAL_CHECKSUM (an empty file if NULL) to a new file
identified by NEW_CHECKSUM in the working copy identified by WRI_ABSPATH.
@@ -709,6 +732,7 @@ svn_wc__write_check(svn_wc__db_t *db,
*/
svn_error_t *
svn_wc__perform_file_merge(svn_skel_t **work_items,
+ svn_skel_t **conflict_skel,
enum svn_wc_merge_outcome_t *merge_outcome,
svn_wc__db_t *db,
const char *local_abspath,
@@ -721,8 +745,6 @@ svn_wc__perform_file_merge(svn_skel_t **
svn_revnum_t target_revision,
const apr_array_header_t *propchanges,
const char *diff3_cmd,
- svn_wc_conflict_resolver_func2_t conflict_func,
- void *conflict_baton,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *result_pool,