Author: svn-role Date: Sun Mar 18 04:00:07 2018 New Revision: 1827124 URL: http://svn.apache.org/viewvc?rev=1827124&view=rev Log: Merge the r1825709 group from trunk:
* r1825709, r1825711 Don't offer conflict resolution options for 'local move vs incoming move'. Justication: The resolver does not support 'move vs move' resolution yet. The current behaviour is misleading. Votes: +1: stsp, philip, brane Modified: subversion/branches/1.10.x/ (props changed) subversion/branches/1.10.x/STATUS subversion/branches/1.10.x/subversion/libsvn_client/conflicts.c subversion/branches/1.10.x/subversion/tests/libsvn_client/conflicts-test.c Propchange: subversion/branches/1.10.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Mar 18 04:00:07 2018 @@ -100,4 +100,4 @@ /subversion/branches/verify-at-commit:1462039-1462408 /subversion/branches/verify-keep-going:1439280-1546110 /subversion/branches/wc-collate-path:1402685-1480384 -/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911,1820044,1820046-1820047,1820518,1820627,1820718,1820778,1821183,1821224,1821621,1821678,1822401,1822587,1822591,1822996,1823202-1823203,1823211,1823327,1823791,1823966,1823989,1824033,1825024,1825045,1825215,1825266,1825306,1825721,1825736,1825778 +/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911,1820044,1820046-1820047,1820518,1820627,1820718,1820778,1821183,1821224,1821621,1821678,1822401,1822587,1822591,1822996,1823202-1823203,1823211,1823327,1823791,1823966,1823989,1824033,1825024,1825045,1825215,1825266,1825306,1825709,1825711,1825721,1825736,1825778 Modified: subversion/branches/1.10.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1827124&r1=1827123&r2=1827124&view=diff ============================================================================== --- subversion/branches/1.10.x/STATUS (original) +++ subversion/branches/1.10.x/STATUS Sun Mar 18 04:00:07 2018 @@ -44,14 +44,6 @@ Veto-blocked changes: Approved changes: ================= - * r1825709, r1825711 - Don't offer conflict resolution options for 'local move vs incoming move'. - Justication: - The resolver does not support 'move vs move' resolution yet. - The current behaviour is misleading. - Votes: - +1: stsp, philip, brane - * r1825783, r1825787, r1825788 Ensure test data is correctly aligned before calling svn_utf__utf{16,32}_to_utf8 Modified: subversion/branches/1.10.x/subversion/libsvn_client/conflicts.c URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/libsvn_client/conflicts.c?rev=1827124&r1=1827123&r2=1827124&view=diff ============================================================================== --- subversion/branches/1.10.x/subversion/libsvn_client/conflicts.c (original) +++ subversion/branches/1.10.x/subversion/libsvn_client/conflicts.c Sun Mar 18 04:00:07 2018 @@ -9672,11 +9672,13 @@ configure_option_incoming_delete_ignore( incoming_details = conflict->tree_conflict_incoming_details; is_incoming_move = (incoming_details != NULL && incoming_details->moves != NULL); - if (local_change == svn_wc_conflict_reason_edited && is_incoming_move) + if (local_change == svn_wc_conflict_reason_moved_away || + local_change == svn_wc_conflict_reason_edited) { /* An option which ignores the incoming deletion makes no sense - * if we know it is actually a move. */ - return SVN_NO_ERROR; + * if we know there was a local move and/or an incoming move. */ + if (is_incoming_move) + return SVN_NO_ERROR; } else if (local_change == svn_wc_conflict_reason_deleted) { @@ -9737,14 +9739,17 @@ configure_option_incoming_delete_accept( if (incoming_change == svn_wc_conflict_action_delete) { struct conflict_tree_incoming_delete_details *incoming_details; + svn_boolean_t is_incoming_move; incoming_details = conflict->tree_conflict_incoming_details; - - if (local_change == svn_wc_conflict_reason_edited && - incoming_details != NULL && incoming_details->moves != NULL) + is_incoming_move = (incoming_details != NULL && + incoming_details->moves != NULL); + if (is_incoming_move && + (local_change == svn_wc_conflict_reason_edited || + local_change == svn_wc_conflict_reason_moved_away)) { /* An option which accepts the incoming deletion makes no sense - * if we know it is actually a move. */ + * if we know there was a local move and/or an incoming move. */ return SVN_NO_ERROR; } else @@ -9892,6 +9897,7 @@ configure_option_incoming_dir_merge(svn_ { svn_node_kind_t victim_node_kind; svn_wc_conflict_action_t incoming_change; + svn_wc_conflict_reason_t local_change; const char *incoming_old_repos_relpath; svn_revnum_t incoming_old_pegrev; svn_node_kind_t incoming_old_kind; @@ -9900,6 +9906,7 @@ configure_option_incoming_dir_merge(svn_ svn_node_kind_t incoming_new_kind; incoming_change = svn_client_conflict_get_incoming_change(conflict); + local_change = svn_client_conflict_get_local_change(conflict); victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict); SVN_ERR(svn_client_conflict_get_incoming_old_repos_location( &incoming_old_repos_relpath, &incoming_old_pegrev, @@ -9913,7 +9920,8 @@ configure_option_incoming_dir_merge(svn_ if (victim_node_kind == svn_node_dir && incoming_old_kind == svn_node_dir && incoming_new_kind == svn_node_none && - incoming_change == svn_wc_conflict_action_delete) + incoming_change == svn_wc_conflict_action_delete && + local_change == svn_wc_conflict_reason_edited) { struct conflict_tree_incoming_delete_details *details; const char *description; Modified: subversion/branches/1.10.x/subversion/tests/libsvn_client/conflicts-test.c URL: http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/tests/libsvn_client/conflicts-test.c?rev=1827124&r1=1827123&r2=1827124&view=diff ============================================================================== --- subversion/branches/1.10.x/subversion/tests/libsvn_client/conflicts-test.c (original) +++ subversion/branches/1.10.x/subversion/tests/libsvn_client/conflicts-test.c Sun Mar 18 04:00:07 2018 @@ -5093,6 +5093,9 @@ test_merge_incoming_move_dir_across_bran ctx, b->pool, b->pool)); SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool)); + SVN_ERR_ASSERT(svn_client_conflict_get_local_change(conflict) == + svn_wc_conflict_reason_edited); + /* Check possible move destinations for the directory. */ SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options, conflict, ctx, b->pool,