Author: stsp Date: Fri Mar 2 14:43:20 2018 New Revision: 1825730 URL: http://svn.apache.org/viewvc?rev=1825730&view=rev Log: Record the move target path in a moved-away tree conflict skel.
Updates can modify the NODES table in ways which discard local move information about tree conflict victims. One example is: echo foo >> epsilon/foo.txt svn mv epsilon alpha svn ci # create r2 svn up -r1 svn mv epsilon beta svn up -r2 When 'epsilon' is updated to r2, a tree conflict is raised and the move 'epsilon' -> 'beta' is deleted from the NODES table. 'beta' remains a copy. $ svn status A + beta ! C epsilon > local dir moved away, incoming dir delete or move upon update $ The conflict skel for the tree conflict on 'epsilon' now contains: (tree () moved-away deleted epsilon) This leaves the resolver with insufficient information about the local move 'epsilon' -> 'beta' which existed before the update. To resolve this conflict we must be able to identify the copy 'beta' as one potential move target. The fact that copyfrom on 'beta' points to 'epsilon' is insufficient because, in the general case, this copy could have occurred independently of the tree conflict. As of this commit, the tree conflict skel also records a move destination path, 'beta' in our example: (tree () moved-away deleted epsilon beta) Apart from recording the path in the skel, this commit introduces no other visible change in behaviour. In the future, the conflict resolver will be able to make use of this new information to correlate the copy 'beta' with the conflict victim 'epsilon' in the above example. Note that old clients will simply ignore the new extra element at the end of the conflict skel. * subversion/libsvn_wc/conflicts.c (svn_wc__conflict_skel_add_tree_conflict): Add move_dst_op_root_abspath parameter and append it to the skel if it is non-NULL. (svn_wc__conflict_read_tree_conflict): Return the move_dst_op_root_abspath if present in the conflict skel. (read_tree_conflict_desc, resolve_tree_conflict_on_node, svn_wc__conflict_tree_update_break_moved_away, svn_wc__conflict_tree_update_incoming_move, svn_wc__conflict_tree_update_local_add): Update callers. * subversion/libsvn_wc/conflicts.h (svn_wc__conflict_skel_add_tree_conflict, svn_wc__conflict_read_tree_conflict): Update declaration and docstring. * subversion/libsvn_wc/questions.c (internal_conflicted_p): Update caller. * subversion/libsvn_wc/tree_conflicts.c (svn_wc__add_tree_conflict): Update caller. * subversion/libsvn_wc/update_editor.c (open_root, check_tree_conflict, add_directory, open_directory, add_file, open_file, change_file_prop): Update callers. * subversion/libsvn_wc/upgrade.c (svn_wc__upgrade_conflict_skel_from_raw): Update caller. * subversion/libsvn_wc/wc_db.c (revert_maybe_raise_moved_away): Update caller. * subversion/libsvn_wc/wc_db_update_move.c (create_tree_conflict, fetch_conflict_details): Update callers. * subversion/tests/libsvn_wc/conflict-data-test.c (test_serialize_tree_conflict): Update test expectations. * subversion/tests/libsvn_wc/op-depth-test.c (check_db_conflicts): Update caller. Modified: subversion/trunk/subversion/libsvn_wc/conflicts.c subversion/trunk/subversion/libsvn_wc/conflicts.h subversion/trunk/subversion/libsvn_wc/questions.c subversion/trunk/subversion/libsvn_wc/tree_conflicts.c subversion/trunk/subversion/libsvn_wc/update_editor.c subversion/trunk/subversion/libsvn_wc/upgrade.c subversion/trunk/subversion/libsvn_wc/wc_db.c subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c Modified: subversion/trunk/subversion/libsvn_wc/conflicts.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/conflicts.c (original) +++ subversion/trunk/subversion/libsvn_wc/conflicts.c Fri Mar 2 14:43:20 2018 @@ -539,6 +539,7 @@ svn_wc__conflict_skel_add_tree_conflict( svn_wc_conflict_reason_t reason, svn_wc_conflict_action_t action, const char *move_src_op_root_abspath, + const char *move_dst_op_root_abspath, apr_pool_t *result_pool, apr_pool_t *scratch_pool) { @@ -555,18 +556,33 @@ svn_wc__conflict_skel_add_tree_conflict( tree_conflict = svn_skel__make_empty_list(result_pool); - if (reason == svn_wc_conflict_reason_moved_away - && move_src_op_root_abspath) + if (reason == svn_wc_conflict_reason_moved_away) { - const char *move_src_op_root_relpath; + if (move_dst_op_root_abspath) + { + const char *move_dst_op_root_relpath; - SVN_ERR(svn_wc__db_to_relpath(&move_src_op_root_relpath, - db, wri_abspath, - move_src_op_root_abspath, - result_pool, scratch_pool)); + SVN_ERR(svn_wc__db_to_relpath(&move_dst_op_root_relpath, + db, wri_abspath, + move_dst_op_root_abspath, + result_pool, scratch_pool)); - svn_skel__prepend_str(move_src_op_root_relpath, tree_conflict, - result_pool); + svn_skel__prepend_str(move_dst_op_root_relpath, tree_conflict, + result_pool); + } + + if (move_src_op_root_abspath) + { + const char *move_src_op_root_relpath; + + SVN_ERR(svn_wc__db_to_relpath(&move_src_op_root_relpath, + db, wri_abspath, + move_src_op_root_abspath, + result_pool, scratch_pool)); + + svn_skel__prepend_str(move_src_op_root_relpath, tree_conflict, + result_pool); + } } svn_skel__prepend_str(svn_token__to_word(action_map, action), @@ -932,6 +948,7 @@ svn_error_t * svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason, svn_wc_conflict_action_t *action, const char **move_src_op_root_abspath, + const char **move_dst_op_root_abspath, svn_wc__db_t *db, const char *wri_abspath, const svn_skel_t *conflict_skel, @@ -981,10 +998,10 @@ svn_wc__conflict_read_tree_conflict(svn_ c = c->next; - if (move_src_op_root_abspath) + if (move_src_op_root_abspath || move_dst_op_root_abspath) { /* Only set for update and switch tree conflicts */ - if (c && is_moved_away) + if (c && is_moved_away && move_src_op_root_abspath) { const char *move_src_op_root_relpath = apr_pstrmemdup(scratch_pool, c->data, c->len); @@ -994,8 +1011,25 @@ svn_wc__conflict_read_tree_conflict(svn_ move_src_op_root_relpath, result_pool, scratch_pool)); } - else + else if (move_src_op_root_abspath) *move_src_op_root_abspath = NULL; + + if (c) + c = c->next; + + if (c && is_moved_away && move_dst_op_root_abspath) + { + const char *move_dst_op_root_relpath + = apr_pstrmemdup(scratch_pool, c->data, c->len); + + SVN_ERR(svn_wc__db_from_relpath(move_dst_op_root_abspath, + db, wri_abspath, + move_dst_op_root_relpath, + result_pool, scratch_pool)); + } + else if (move_dst_op_root_abspath) + *move_dst_op_root_abspath = NULL; + } return SVN_NO_ERROR; @@ -1801,7 +1835,7 @@ read_tree_conflict_desc(svn_wc_conflict_ svn_wc_conflict_action_t action; SVN_ERR(svn_wc__conflict_read_tree_conflict( - &reason, &action, NULL, + &reason, &action, NULL, NULL, db, local_abspath, conflict_skel, scratch_pool, scratch_pool)); if (reason == svn_wc_conflict_reason_missing) @@ -2676,7 +2710,7 @@ resolve_tree_conflict_on_node(svn_boolea SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, &src_op_root_abspath, - db, local_abspath, + NULL, db, local_abspath, conflicts, scratch_pool, scratch_pool)); @@ -2748,6 +2782,7 @@ resolve_tree_conflict_on_node(svn_boolea SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, &src_op_root_abspath, + NULL, db, local_abspath, new_conflicts, scratch_pool, @@ -3483,7 +3518,7 @@ svn_wc__conflict_tree_update_break_moved return SVN_NO_ERROR; SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, - &src_op_root_abspath, + &src_op_root_abspath, NULL, wc_ctx->db, local_abspath, conflict_skel, scratch_pool, scratch_pool)); @@ -3569,7 +3604,7 @@ svn_wc__conflict_tree_update_raise_moved if (!tree_conflicted) return SVN_NO_ERROR; - SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL, + SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL, NULL, wc_ctx->db, local_abspath, conflict_skel, scratch_pool, scratch_pool)); @@ -3648,7 +3683,7 @@ svn_wc__conflict_tree_update_moved_away_ return SVN_NO_ERROR; SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, - &src_op_root_abspath, + &src_op_root_abspath, NULL, wc_ctx->db, local_abspath, conflict_skel, scratch_pool, scratch_pool)); @@ -3734,8 +3769,8 @@ svn_wc__conflict_tree_update_incoming_mo return SVN_NO_ERROR; SVN_ERR(svn_wc__conflict_read_tree_conflict(&local_change, &incoming_change, - NULL, wc_ctx->db, local_abspath, - conflict_skel, + NULL, NULL, wc_ctx->db, + local_abspath, conflict_skel, scratch_pool, scratch_pool)); /* Make sure the expected conflict is recorded. */ @@ -3803,8 +3838,8 @@ svn_wc__conflict_tree_update_local_add(s return SVN_NO_ERROR; SVN_ERR(svn_wc__conflict_read_tree_conflict(&local_change, &incoming_change, - NULL, wc_ctx->db, local_abspath, - conflict_skel, + NULL, NULL, wc_ctx->db, + local_abspath, conflict_skel, scratch_pool, scratch_pool)); /* Make sure the expected conflict is recorded. */ Modified: subversion/trunk/subversion/libsvn_wc/conflicts.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.h?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/conflicts.h (original) +++ subversion/trunk/subversion/libsvn_wc/conflicts.h Fri Mar 2 14:43:20 2018 @@ -219,6 +219,11 @@ svn_wc__conflict_skel_add_prop_conflict( MOVE_SRC_OP_ROOT_ABSPATH should be A for a conflict associated with (1), MOVE_SRC_OP_ROOT_ABSPATH should be A/B for a conflict associated with (2). + MOVE_DST_OP_ROOT_ABSPATH is the op-root of the move target (i.e. the + op-root of the corresponding copy). This needs to be stored because + moves in the NODE table do not always persist after an update, while + the conflict resolver may need information about the pre-update state + of the move. It is an error to add another tree conflict to a conflict skel that already contains a tree conflict. (It is not an error, at this level, @@ -233,6 +238,7 @@ svn_wc__conflict_skel_add_tree_conflict( svn_wc_conflict_reason_t local_change, svn_wc_conflict_action_t incoming_change, const char *move_src_op_root_abspath, + const char *move_dst_op_root_abspath, apr_pool_t *result_pool, apr_pool_t *scratch_pool); @@ -364,6 +370,7 @@ svn_error_t * svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *local_change, svn_wc_conflict_action_t *incoming_change, const char **move_src_op_root_abspath, + const char **move_dst_op_root_abspath, svn_wc__db_t *db, const char *wri_abspath, const svn_skel_t *conflict_skel, Modified: subversion/trunk/subversion/libsvn_wc/questions.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/questions.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/questions.c (original) +++ subversion/trunk/subversion/libsvn_wc/questions.c Fri Mar 2 14:43:20 2018 @@ -475,7 +475,7 @@ internal_conflicted_p(svn_boolean_t *tex svn_wc_conflict_action_t action; SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL, - db, local_abspath, + NULL, db, local_abspath, conflicts, scratch_pool, scratch_pool)); Modified: subversion/trunk/subversion/libsvn_wc/tree_conflicts.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/tree_conflicts.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/tree_conflicts.c (original) +++ subversion/trunk/subversion/libsvn_wc/tree_conflicts.c Fri Mar 2 14:43:20 2018 @@ -442,7 +442,7 @@ svn_wc__add_tree_conflict(svn_wc_context conflict->local_abspath, conflict->reason, conflict->action, - NULL, + NULL, NULL, scratch_pool, scratch_pool)); switch (conflict->operation) Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/update_editor.c (original) +++ subversion/trunk/subversion/libsvn_wc/update_editor.c Fri Mar 2 14:43:20 2018 @@ -1235,9 +1235,11 @@ open_root(void *edit_baton, db->shadowed = TRUE; else if (have_work) { + const char *move_dst_op_root_abspath; const char *move_src_root_abspath; - SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, &move_src_root_abspath, + SVN_ERR(svn_wc__db_base_moved_to(NULL, &move_dst_op_root_abspath, + &move_src_root_abspath, NULL, eb->db, db->local_abspath, pool, pool)); @@ -1252,7 +1254,8 @@ open_root(void *edit_baton, tree_conflict, eb->db, move_src_root_abspath, svn_wc_conflict_reason_moved_away, svn_wc_conflict_action_edit, - move_src_root_abspath, pool, pool)); + move_src_root_abspath, + move_dst_op_root_abspath, pool, pool)); if (strcmp(db->local_abspath, move_src_root_abspath)) { @@ -1345,6 +1348,7 @@ check_tree_conflict(svn_skel_t **pconfli svn_wc_conflict_reason_t reason = SVN_WC_CONFLICT_REASON_NONE; svn_boolean_t modified = FALSE; const char *move_src_op_root_abspath = NULL; + const char *move_dst_op_root_abspath = NULL; *pconflict = NULL; @@ -1397,8 +1401,8 @@ check_tree_conflict(svn_skel_t **pconfli case svn_wc__db_status_deleted: { - SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, NULL, - &move_src_op_root_abspath, + SVN_ERR(svn_wc__db_base_moved_to(NULL, &move_dst_op_root_abspath, + NULL, &move_src_op_root_abspath, eb->db, local_abspath, scratch_pool, scratch_pool)); if (move_src_op_root_abspath) @@ -1530,6 +1534,7 @@ check_tree_conflict(svn_skel_t **pconfli reason, action, move_src_op_root_abspath, + move_dst_op_root_abspath, result_pool, scratch_pool)); return SVN_NO_ERROR; @@ -2007,11 +2012,13 @@ add_directory(const char *path, { svn_wc_conflict_reason_t reason; const char *move_src_op_root_abspath; + const char *move_dst_op_root_abspath; /* So this deletion wasn't just a deletion, it is actually a replacement. Let's install a better tree conflict. */ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, &move_src_op_root_abspath, + &move_dst_op_root_abspath, eb->db, db->local_abspath, tree_conflict, @@ -2024,6 +2031,7 @@ add_directory(const char *path, eb->db, db->local_abspath, reason, svn_wc_conflict_action_replace, move_src_op_root_abspath, + move_dst_op_root_abspath, db->pool, scratch_pool)); /* And now stop checking for conflicts here and just perform @@ -2148,8 +2156,8 @@ add_directory(const char *path, tree_conflict, eb->db, db->local_abspath, svn_wc_conflict_reason_unversioned, - svn_wc_conflict_action_add, NULL, - db->pool, scratch_pool)); + svn_wc_conflict_action_add, + NULL, NULL, db->pool, scratch_pool)); db->edit_conflict = tree_conflict; } } @@ -2336,7 +2344,7 @@ open_directory(const char *path, db->edit_conflict = tree_conflict; /* Other modifications wouldn't be a tree conflict */ - SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, + SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, NULL, eb->db, db->local_abspath, tree_conflict, db->pool, db->pool)); @@ -3220,11 +3228,13 @@ add_file(const char *path, { svn_wc_conflict_reason_t reason; const char *move_src_op_root_abspath; + const char *move_dst_op_root_abspath; /* So this deletion wasn't just a deletion, it is actually a replacement. Let's install a better tree conflict. */ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, &move_src_op_root_abspath, + &move_dst_op_root_abspath, eb->db, fb->local_abspath, tree_conflict, @@ -3237,6 +3247,7 @@ add_file(const char *path, eb->db, fb->local_abspath, reason, svn_wc_conflict_action_replace, move_src_op_root_abspath, + move_dst_op_root_abspath, fb->pool, scratch_pool)); /* And now stop checking for conflicts here and just perform @@ -3363,7 +3374,7 @@ add_file(const char *path, eb->db, fb->local_abspath, svn_wc_conflict_reason_unversioned, svn_wc_conflict_action_add, - NULL, + NULL, NULL, fb->pool, scratch_pool)); } } @@ -3528,7 +3539,7 @@ open_file(const char *path, fb->edit_conflict = tree_conflict; /* Other modifications wouldn't be a tree conflict */ - SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, + SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, NULL, eb->db, fb->local_abspath, tree_conflict, scratch_pool, scratch_pool)); @@ -3797,7 +3808,7 @@ change_file_prop(void *file_baton, eb->db, fb->local_abspath, svn_wc_conflict_reason_edited, svn_wc_conflict_action_replace, - NULL, + NULL, NULL, fb->pool, scratch_pool)); SVN_ERR(complete_conflict(fb->edit_conflict, fb->edit_baton, Modified: subversion/trunk/subversion/libsvn_wc/upgrade.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/upgrade.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/upgrade.c (original) +++ subversion/trunk/subversion/libsvn_wc/upgrade.c Fri Mar 2 14:43:20 2018 @@ -1237,7 +1237,7 @@ svn_wc__upgrade_conflict_skel_from_raw(s db, wri_abspath, tc->reason, tc->action, - NULL, + NULL, NULL, scratch_pool, scratch_pool)); Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/wc_db.c (original) +++ subversion/trunk/subversion/libsvn_wc/wc_db.c Fri Mar 2 14:43:20 2018 @@ -6839,7 +6839,7 @@ revert_maybe_raise_moved_away(svn_wc__db } SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, - NULL, + NULL, NULL, db, wcroot->abspath, conflict, scratch_pool, Modified: subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c (original) +++ subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c Fri Mar 2 14:43:20 2018 @@ -411,6 +411,11 @@ create_tree_conflict(svn_skel_t **confli ? svn_dirent_join(wcroot->abspath, move_src_op_root_relpath, scratch_pool) : NULL; + const char *move_dst_op_root_abspath + = dst_op_root_relpath + ? svn_dirent_join(wcroot->abspath, + dst_op_root_relpath, scratch_pool) + : NULL; const char *old_repos_relpath_part = old_repos_relpath && old_version ? svn_relpath_skip_ancestor(old_version->path_in_repos, @@ -468,7 +473,7 @@ create_tree_conflict(svn_skel_t **confli SVN_ERR(svn_wc__conflict_read_tree_conflict(&existing_reason, &existing_action, - &existing_abspath, + &existing_abspath, NULL, db, wcroot->abspath, conflict, scratch_pool, @@ -500,6 +505,7 @@ create_tree_conflict(svn_skel_t **confli reason, action, move_src_op_root_abspath, + move_dst_op_root_abspath, result_pool, scratch_pool)); @@ -4099,7 +4105,7 @@ fetch_conflict_details(int *src_op_depth SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, action, - &move_src_op_root_abspath, + &move_src_op_root_abspath, NULL, db, local_abspath, conflict_skel, result_pool, scratch_pool)); Modified: subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c (original) +++ subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c Fri Mar 2 14:43:20 2018 @@ -594,6 +594,7 @@ test_serialize_tree_conflict(const svn_t svn_wc_conflict_reason_moved_away, svn_wc_conflict_action_delete, sbox_wc_path(&sbox, "A/B"), + sbox_wc_path(&sbox, "A/C"), pool, pool)); SVN_ERR(svn_wc__conflict_skel_set_op_switch( @@ -610,11 +611,13 @@ test_serialize_tree_conflict(const svn_t { svn_wc_conflict_reason_t reason; svn_wc_conflict_action_t action; - const char *moved_away_op_root_abspath; + const char *moved_away_src_op_root_abspath; + const char *moved_away_dst_op_root_abspath; SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, - &moved_away_op_root_abspath, + &moved_away_src_op_root_abspath, + &moved_away_dst_op_root_abspath, sbox.wc_ctx->db, sbox.wc_abspath, conflict_skel, @@ -622,8 +625,10 @@ test_serialize_tree_conflict(const svn_t SVN_TEST_ASSERT(reason == svn_wc_conflict_reason_moved_away); SVN_TEST_ASSERT(action == svn_wc_conflict_action_delete); - SVN_TEST_STRING_ASSERT(moved_away_op_root_abspath, + SVN_TEST_STRING_ASSERT(moved_away_src_op_root_abspath, sbox_wc_path(&sbox, "A/B")); + SVN_TEST_STRING_ASSERT(moved_away_dst_op_root_abspath, + sbox_wc_path(&sbox, "A/C")); } return SVN_NO_ERROR; Modified: subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c?rev=1825730&r1=1825729&r2=1825730&view=diff ============================================================================== --- subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c (original) +++ subversion/trunk/subversion/tests/libsvn_wc/op-depth-test.c Fri Mar 2 14:43:20 2018 @@ -535,7 +535,7 @@ check_db_conflicts(svn_test__sandbox_t * SVN_ERR(svn_wc__conflict_read_tree_conflict(&info->tc.reason, &info->tc.action, &move_src_abspath, - b->wc_ctx->db, + NULL, b->wc_ctx->db, local_abspath, conflict, b->pool, iterpool));