Author: svn-role Date: Fri Dec 6 04:00:10 2019 New Revision: 1870899 URL: http://svn.apache.org/viewvc?rev=1870899&view=rev Log: Merge r1851920 from trunk:
* r1851920 Remove a useless common ancestor search from the conflict resolver. Justification: Current behaviour is inefficient and could lead to dubious conflicts. Votes: +1: stsp, rhuijben Modified: subversion/branches/1.11.x/ (props changed) subversion/branches/1.11.x/STATUS subversion/branches/1.11.x/subversion/libsvn_client/conflicts.c Propchange: subversion/branches/1.11.x/ ------------------------------------------------------------------------------ Merged /subversion/trunk:r1851920 Modified: subversion/branches/1.11.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/STATUS?rev=1870899&r1=1870898&r2=1870899&view=diff ============================================================================== --- subversion/branches/1.11.x/STATUS (original) +++ subversion/branches/1.11.x/STATUS Fri Dec 6 04:00:10 2019 @@ -32,13 +32,6 @@ Veto-blocked changes: Approved changes: ================= - * r1851920 - Remove a useless common ancestor search from the conflict resolver. - Justification: - Current behaviour is inefficient and could lead to dubious conflicts. - Votes: - +1: stsp, rhuijben - * r1855419 Fix conflict resolver bug where local and incoming edits got swapped. Justification: Modified: subversion/branches/1.11.x/subversion/libsvn_client/conflicts.c URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/subversion/libsvn_client/conflicts.c?rev=1870899&r1=1870898&r2=1870899&view=diff ============================================================================== --- subversion/branches/1.11.x/subversion/libsvn_client/conflicts.c (original) +++ subversion/branches/1.11.x/subversion/libsvn_client/conflicts.c Fri Dec 6 04:00:10 2019 @@ -8883,8 +8883,8 @@ resolve_incoming_move_dir_merge(svn_clie struct conflict_tree_incoming_delete_details *details; apr_array_header_t *possible_moved_to_abspaths; const char *moved_to_abspath; - svn_client__pathrev_t *yca_loc; - svn_opt_revision_t yca_opt_rev; + const char *incoming_old_url; + svn_opt_revision_t incoming_old_opt_rev; svn_client__conflict_report_t *conflict_report; svn_boolean_t is_copy; svn_boolean_t is_modified; @@ -8977,30 +8977,6 @@ resolve_incoming_move_dir_merge(svn_clie goto unlock_wc; } - /* Now find the youngest common ancestor of these nodes. */ - err = find_yca(&yca_loc, victim_repos_relpath, victim_peg_rev, - moved_to_repos_relpath, moved_to_peg_rev, - repos_root_url, repos_uuid, - NULL, ctx, scratch_pool, scratch_pool); - if (err) - goto unlock_wc; - - if (yca_loc == NULL) - { - err = svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL, - _("Cannot resolve tree conflict on '%s' " - "(could not find common ancestor of '^/%s@%ld' " - " and '^/%s@%ld')"), - svn_dirent_local_style(local_abspath, - scratch_pool), - victim_repos_relpath, victim_peg_rev, - moved_to_repos_relpath, moved_to_peg_rev); - goto unlock_wc; - } - - yca_opt_rev.kind = svn_opt_revision_number; - yca_opt_rev.value.number = yca_loc->rev; - err = verify_local_state_for_incoming_delete(conflict, option, ctx, scratch_pool); if (err) @@ -9032,7 +9008,12 @@ resolve_incoming_move_dir_merge(svn_clie if (err) goto unlock_wc; - /* Merge YCA_URL@YCA_REV->MOVE_TARGET_URL@MERGE_RIGHT into move target. */ + /* Merge INCOMING_OLD_URL@MERGE_LEFT->MOVE_TARGET_URL@MERGE_RIGHT + * into move target. */ + incoming_old_url = apr_pstrcat(scratch_pool, repos_root_url, "/", + incoming_old_repos_relpath, SVN_VA_NULL); + incoming_old_opt_rev.kind = svn_opt_revision_number; + incoming_old_opt_rev.value.number = incoming_old_pegrev; move_target_url = apr_pstrcat(scratch_pool, repos_root_url, "/", get_moved_to_repos_relpath(details, scratch_pool), @@ -9040,7 +9021,7 @@ resolve_incoming_move_dir_merge(svn_clie incoming_new_opt_rev.kind = svn_opt_revision_number; incoming_new_opt_rev.value.number = incoming_new_pegrev; err = svn_client__merge_locked(&conflict_report, - yca_loc->url, &yca_opt_rev, + incoming_old_url, &incoming_old_opt_rev, move_target_url, &incoming_new_opt_rev, moved_to_abspath, svn_depth_infinity, TRUE, TRUE, /* do a no-ancestry merge */