You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2016/02/23 12:39:01 UTC

svn commit: r1731839 - /subversion/trunk/subversion/libsvn_client/resolved.c

Author: stsp
Date: Tue Feb 23 11:39:00 2016
New Revision: 1731839

URL: http://svn.apache.org/viewvc?rev=1731839&view=rev
Log:
* subversion/libsvn_client/resolved.c
  (resolve_tree_conflict): Make this function mark any tree conflict resolved.
   In other words, it now always accepts the current working copy state.

Modified:
    subversion/trunk/subversion/libsvn_client/resolved.c

Modified: subversion/trunk/subversion/libsvn_client/resolved.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/resolved.c?rev=1731839&r1=1731838&r2=1731839&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/resolved.c (original)
+++ subversion/trunk/subversion/libsvn_client/resolved.c Tue Feb 23 11:39:00 2016
@@ -796,105 +796,33 @@ resolve_tree_conflict(svn_client_conflic
   svn_client_conflict_option_id_t option_id;
   const char *local_abspath;
   const char *lock_abspath;
-  svn_wc_conflict_reason_t local_change;
-  svn_wc_conflict_action_t incoming_change;
   svn_client_ctx_t *ctx = conflict->ctx;
-  svn_wc_operation_t operation;
   svn_error_t *err;
 
   option_id = svn_client_conflict_option_get_id(option);
   local_abspath = svn_client_conflict_get_local_abspath(conflict);
-  operation = svn_client_conflict_get_operation(conflict);
-  local_change = svn_client_conflict_get_local_change(conflict);
-  incoming_change = svn_client_conflict_get_incoming_change(conflict);
+
+  if (option_id != svn_client_conflict_option_accept_current_wc_state)
+    return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+                             _("Tree conflict on '%s' can only be resolved "
+                               "to the current working copy state"),
+                             svn_dirent_local_style(local_abspath,
+                                                    scratch_pool));
 
   SVN_ERR(svn_wc__acquire_write_lock_for_resolve(&lock_abspath, ctx->wc_ctx,
                                                  local_abspath,
                                                  scratch_pool, scratch_pool));
 
-  if ((operation == svn_wc_operation_update ||
-       operation == svn_wc_operation_switch) &&
-      (local_change == svn_wc_conflict_reason_deleted ||
-       local_change == svn_wc_conflict_reason_replaced) &&
-      option_id == svn_client_conflict_option_accept_current_wc_state)
-    {
-      err = svn_wc__conflict_tree_update_break_moved_away(ctx->wc_ctx,
-                                                          local_abspath,
-                                                          ctx->cancel_func,
-                                                          ctx->cancel_baton,
-                                                          ctx->notify_func2,
-                                                          ctx->notify_baton2,
-                                                          scratch_pool);
-    }
-  else if ((operation == svn_wc_operation_update ||
-            operation == svn_wc_operation_switch) &&
-           (local_change == svn_wc_conflict_reason_deleted ||
-            local_change == svn_wc_conflict_reason_replaced) &&
-           incoming_change == svn_wc_conflict_action_edit &&
-           option_id ==
-             svn_client_conflict_option_update_any_moved_away_children)
-    {
-      err = svn_wc__conflict_tree_update_raise_moved_away(ctx->wc_ctx,
-                                                          local_abspath,
-                                                          ctx->cancel_func,
-                                                          ctx->cancel_baton,
-                                                          ctx->notify_func2,
-                                                          ctx->notify_baton2,
-                                                          scratch_pool);
-    }
-  else if ((operation == svn_wc_operation_update ||
-            operation == svn_wc_operation_switch) &&
-           local_change == svn_wc_conflict_reason_moved_away &&
-           incoming_change == svn_wc_conflict_action_edit &&
-           option_id == svn_client_conflict_option_update_move_destination)
-    {
-      err = svn_wc__conflict_tree_update_moved_away_node(ctx->wc_ctx,
-                                                         local_abspath,
-                                                         ctx->cancel_func,
-                                                         ctx->cancel_baton,
-                                                         ctx->notify_func2,
-                                                         ctx->notify_baton2,
-                                                         scratch_pool);
-    }
-  else if ((operation == svn_wc_operation_update ||
-            operation == svn_wc_operation_switch) &&
-            local_change == svn_wc_conflict_reason_moved_away &&
-           incoming_change == svn_wc_conflict_action_edit &&
-           option_id ==
-             svn_client_conflict_option_accept_current_wc_state)
-    {
-      /* We must break the move if the user accepts the current
-       * working copy state instead of updating the move.
-       * Else the move would be left in an invalid state. */
-      err = svn_wc__conflict_tree_update_break_moved_away(ctx->wc_ctx,
-                                                          local_abspath,
-                                                          ctx->cancel_func,
-                                                          ctx->cancel_baton,
-                                                          ctx->notify_func2,
-                                                          ctx->notify_baton2,
-                                                          scratch_pool);
-    }
-  else if (option_id != svn_client_conflict_option_accept_current_wc_state)
-    {
-      err = svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
-                              _("Tree conflict on '%s' can only be resolved "
-                                "to the current working copy state"),
-                              svn_dirent_local_style(local_abspath,
-                                                     scratch_pool));
-    }
-  else
-    {
-      /* Resolve to current working copy state. */
-      err = svn_wc__del_tree_conflict(ctx->wc_ctx, local_abspath, scratch_pool);
-
-      /* svn_wc__del_tree_conflict doesn't handle notification for us */
-      if (ctx->notify_func2)
-        ctx->notify_func2(ctx->notify_baton2,
-                          svn_wc_create_notify(local_abspath,
-                                               svn_wc_notify_resolved,
-                                               scratch_pool),
-                          scratch_pool);
-    }
+  /* Resolve to current working copy state. */
+  err = svn_wc__del_tree_conflict(ctx->wc_ctx, local_abspath, scratch_pool);
+
+  /* svn_wc__del_tree_conflict doesn't handle notification for us */
+  if (ctx->notify_func2)
+    ctx->notify_func2(ctx->notify_baton2,
+                      svn_wc_create_notify(local_abspath,
+                                           svn_wc_notify_resolved,
+                                           scratch_pool),
+                      scratch_pool);
 
   err = svn_error_compose_create(err, svn_wc__release_write_lock(ctx->wc_ctx,
                                                                  lock_abspath,