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/01/28 17:58:32 UTC

svn commit: r1727406 - /subversion/trunk/subversion/svn/conflict-callbacks.c

Author: stsp
Date: Thu Jan 28 16:58:32 2016
New Revision: 1727406

URL: http://svn.apache.org/viewvc?rev=1727406&view=rev
Log:
Start using svn_client_conflict_get_conflicted() in 'svn'.

This covers the easy cases. Property conflicts still need some work.

* subversion/svn/conflict-callbacks.c
  (conflict_func_interactive): Use svn_client_conflict_get_conflicted()
   instead of svn_client_conflict_get_kind().
  (svn_cl__resolve_conflict): Likewise.

Modified:
    subversion/trunk/subversion/svn/conflict-callbacks.c

Modified: subversion/trunk/subversion/svn/conflict-callbacks.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/conflict-callbacks.c?rev=1727406&r1=1727405&r2=1727406&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/conflict-callbacks.c (original)
+++ subversion/trunk/subversion/svn/conflict-callbacks.c Thu Jan 28 16:58:32 2016
@@ -1405,8 +1405,17 @@ conflict_func_interactive(svn_client_con
   const char *my_abspath = NULL;
   const char *their_abspath = NULL;
   const char *merged_abspath = svn_client_conflict_get_local_abspath(conflict);
+  svn_boolean_t text_conflicted;
+  svn_boolean_t tree_conflicted;
 
-  if (svn_client_conflict_get_kind(conflict) == svn_wc_conflict_kind_text)
+  SVN_ERR(svn_client_conflict_get_conflicted(&text_conflicted,
+                                             NULL, /* ### TODO */
+                                             &tree_conflicted,
+                                             conflict,
+                                             scratch_pool,
+                                             scratch_pool));
+
+  if (text_conflicted)
     SVN_ERR(svn_client_conflict_text_get_contents(NULL, &my_abspath,
                                                   &base_abspath,
                                                   &their_abspath,
@@ -1535,11 +1544,11 @@ conflict_func_interactive(svn_client_con
      Conflicting edits on a file's text, or
      Conflicting edits on a property.
   */
-  if (((svn_client_conflict_get_kind(conflict) == svn_wc_conflict_kind_text)
+  if (text_conflicted
        && (svn_client_conflict_get_incoming_change(conflict) ==
            svn_wc_conflict_action_edit)
        && (svn_client_conflict_get_local_change(conflict) ==
-           svn_wc_conflict_reason_edited)))
+           svn_wc_conflict_reason_edited))
     SVN_ERR(handle_text_conflict(option_id, save_merged, accept_which,
                                  quit, conflict, path_prefix, pb,
                                  editor_cmd, config, scratch_pool));
@@ -1549,7 +1558,7 @@ conflict_func_interactive(svn_client_con
                                  quit, path_prefix, pb,
                                  editor_cmd, config, conflict,
                                  result_pool, scratch_pool));
-  else if (svn_client_conflict_get_kind(conflict) == svn_wc_conflict_kind_tree)
+  else if (tree_conflicted)
     SVN_ERR(handle_tree_conflict(option_id, accept_which, quit,
                                  conflict, path_prefix, pb,
                                  scratch_pool));
@@ -1624,6 +1633,17 @@ svn_cl__resolve_conflict(svn_boolean_t *
                          svn_client_ctx_t *ctx,
                          apr_pool_t *scratch_pool)
 {
+  svn_boolean_t text_conflicted;
+  apr_array_header_t **props_conflicted;
+  svn_boolean_t tree_conflicted;
+
+  SVN_ERR(svn_client_conflict_get_conflicted(&text_conflicted,
+                                             &props_conflicted,
+                                             &tree_conflicted,
+                                             conflict,
+                                             scratch_pool,
+                                             scratch_pool));
+
   if (option_id == svn_client_conflict_option_unspecified)
     SVN_ERR(conflict_func_interactive(&option_id, NULL, NULL,
                                       accept_which, quit,
@@ -1641,7 +1661,6 @@ svn_cl__resolve_conflict(svn_boolean_t *
         = svn_cl__local_style_skip_ancestor(
             path_prefix, svn_client_conflict_get_local_abspath(conflict),
             scratch_pool);
-      svn_wc_conflict_kind_t conflict_kind;
       const char *local_abspath;
       const char *lock_abspath;
       svn_error_t *err;
@@ -1654,13 +1673,11 @@ svn_cl__resolve_conflict(svn_boolean_t *
                                                      local_abspath,
                                                      scratch_pool,
                                                      scratch_pool));
-      conflict_kind = svn_client_conflict_get_kind(conflict);
-
       err = svn_wc_resolved_conflict5(
               ctx->wc_ctx, local_abspath, svn_depth_empty, /* ??? */
-              conflict_kind == svn_wc_conflict_kind_text,
-              conflict_kind == svn_wc_conflict_kind_property ? "" : NULL,
-              conflict_kind == svn_wc_conflict_kind_tree,
+              text_conflicted,
+              props_conflicted != NULL ? "" : NULL,
+              tree_conflicted,
               conflict_option_id_to_wc_conflict_choice(option_id),
               ctx->cancel_func, ctx->cancel_baton,
               ctx->notify_func2, ctx->notify_baton2,