Author: stsp
Date: Wed Jun  3 08:56:46 2015
New Revision: 1683257

URL: http://svn.apache.org/r1683257
Log:
Start introducing some actual svn_client_conflict API functions.

The API functions introduced with this commit are very trivial ones.

* subversion/include/svn_client.h
  (svn_client_conflict_get_local_abspath,
   svn_client_conflict_get_operation,
   svn_client_conflict_get_incoming_change,
   svn_client_conflict_get_local_change): Declare. These function replace the
   macros called svn_client_conflict_get_local_abspath,
   svn_client_conflict_get_operation, svn_client_conflict_get_action, and
   svn_client_conflict_get_reason.

* subversion/libsvn_client/resolved.c
  (svn_client_conflict_get_local_abspath,
   svn_client_conflict_get_operation,
   svn_client_conflict_get_incoming_change,
   svn_client_conflict_get_local_change): Implement.

* subversion/svn/cl-conflicts.c
  (svn_cl__get_human_readable_prop_conflict_description,
  (svn_cl__get_human_readable_tree_conflict_description,
   append_tree_conflict_info_xml): Switch to new functions replacing macros.

* subversion/svn/conflict-callbacks.c
  (handle_tree_conflict, conflict_func_interactive): Likewise.

Modified:
    subversion/trunk/subversion/include/svn_client.h
    subversion/trunk/subversion/libsvn_client/resolved.c
    subversion/trunk/subversion/svn/cl-conflicts.c
    subversion/trunk/subversion/svn/conflict-callbacks.c

Modified: subversion/trunk/subversion/include/svn_client.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1683257&r1=1683256&r2=1683257&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Wed Jun  3 08:56:46 2015
@@ -4362,14 +4362,54 @@ svn_client_revert(const apr_array_header
  */
 
 /**
+ * Return the absolute path to the conflicted working copy node described
+ * by @a conflict.
+ *
+ * @since New in 1.10. 
+ */
+const char *
+svn_client_conflict_get_local_abspath(svn_wc_conflict_description2_t 
*conflict);
+
+/**
+ * Return the operation during which the conflict described by @a
+ * conflict was recorded.
+ *
+ * @since New in 1.10. 
+ */
+svn_wc_operation_t
+svn_client_conflict_get_operation(svn_wc_conflict_description2_t *conflict);
+
+/**
+ * Return the action an update, switch, or merge operation attempted to
+ * perform on the working copy node described by @a conflict.
+ * 
+ * @since New in 1.10. 
+ */
+svn_wc_conflict_action_t
+svn_client_conflict_get_incoming_change(
+  svn_wc_conflict_description2_t *conflict);
+
+/**
+ * Return the reason why the attempted action performed by an update, switch,
+ * or merge operation conflicted with the state of the node in the working 
copy.
+ *
+ * During update and switch operations this local change is part of uncommitted
+ * modifications in the working copy. During merge operations it may
+ * additionally be part of the history of the merge target branch, anywhere
+ * between the common ancestor revision and the working copy revision.
+ * 
+ * @since New in 1.10. 
+ */
+svn_wc_conflict_reason_t
+svn_client_conflict_get_local_change(svn_wc_conflict_description2_t *conflict);
+
+/**
  * Accessor functions for svn_wc_conflict_description2_t. This is a temporary
  * API for eventually replacing svn_wc_conflict_description2_t with an opaque
  * type and providing improved APIs for conflict resolution.
  * 
  * @since New in 1.10. 
  */
-#define svn_client_conflict_get_local_abspath(conflict) \
-  ((conflict)->local_abspath)
 
 #define svn_client_conflict_get_node_kind(conflict) \
   ((conflict)->node_kind)
@@ -4386,12 +4426,6 @@ svn_client_revert(const apr_array_header
 #define svn_client_conflict_get_mime_type(conflict) \
   ((conflict)->mime_type)
 
-#define svn_client_conflict_get_action(conflict) \
-  ((conflict)->action)
-
-#define svn_client_conflict_get_reason(conflict) \
-  ((conflict)->reason)
-
 #define svn_client_conflict_get_base_abspath(conflict) \
   ((conflict)->base_abspath)
 
@@ -4404,9 +4438,6 @@ svn_client_revert(const apr_array_header
 #define svn_client_conflict_get_merged_file(conflict) \
   ((conflict)->merged_file)
 
-#define svn_client_conflict_get_operation(conflict) \
-  ((conflict)->operation)
-
 #define svn_client_conflict_get_src_left_version(conflict) \
   ((conflict)->src_left_version)
 

Modified: subversion/trunk/subversion/libsvn_client/resolved.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/resolved.c?rev=1683257&r1=1683256&r2=1683257&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/resolved.c (original)
+++ subversion/trunk/subversion/libsvn_client/resolved.c Wed Jun  3 08:56:46 
2015
@@ -144,3 +144,31 @@ svn_client_resolve(const char *path,
 
   return svn_error_trace(err);
 }
+
+
+/*** Dealing with conflitcs. ***/
+
+const char *
+svn_client_conflict_get_local_abspath(svn_wc_conflict_description2_t *conflict)
+{
+  return conflict->local_abspath;
+}
+
+svn_wc_operation_t
+svn_client_conflict_get_operation(svn_wc_conflict_description2_t *conflict)
+{
+  return conflict->operation;
+}
+
+svn_wc_conflict_action_t
+svn_client_conflict_get_incoming_change(
+  svn_wc_conflict_description2_t *conflict)
+{
+  return conflict->action;
+}
+
+svn_wc_conflict_reason_t
+svn_client_conflict_get_local_change(svn_wc_conflict_description2_t *conflict)
+{
+  return conflict->reason;
+}

Modified: subversion/trunk/subversion/svn/cl-conflicts.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/cl-conflicts.c?rev=1683257&r1=1683256&r2=1683257&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/cl-conflicts.c (original)
+++ subversion/trunk/subversion/svn/cl-conflicts.c Wed Jun  3 08:56:46 2015
@@ -236,7 +236,7 @@ svn_cl__get_human_readable_prop_conflict
 
   /* We provide separately translatable strings for the values that we
    * know about, and a fall-back in case any other values occur. */
-  switch (svn_client_conflict_get_reason(conflict))
+  switch (svn_client_conflict_get_local_change(conflict))
     {
       case svn_wc_conflict_reason_edited:
         reason_str = _("local edit");
@@ -251,13 +251,14 @@ svn_cl__get_human_readable_prop_conflict
         reason_str = _("local obstruction");
         break;
       default:
-        reason_str = apr_psprintf(pool, _("local %s"),
-                                  svn_token__to_word(
-                                    map_conflict_reason_xml,
-                                    svn_client_conflict_get_reason(conflict)));
+        reason_str = apr_psprintf(
+                       pool, _("local %s"),
+                       svn_token__to_word(
+                         map_conflict_reason_xml,
+                         svn_client_conflict_get_local_change(conflict)));
         break;
     }
-  switch (svn_client_conflict_get_action(conflict))
+  switch (svn_client_conflict_get_incoming_change(conflict))
     {
       case svn_wc_conflict_action_edit:
         action_str = _("incoming edit");
@@ -269,10 +270,11 @@ svn_cl__get_human_readable_prop_conflict
         action_str = _("incoming delete");
         break;
       default:
-        action_str = apr_psprintf(pool, _("incoming %s"),
-                                  svn_token__to_word(
-                                    map_conflict_action_xml,
-                                    svn_client_conflict_get_action(conflict)));
+        action_str = apr_psprintf(
+                       pool, _("incoming %s"),
+                       svn_token__to_word(
+                         map_conflict_action_xml,
+                         svn_client_conflict_get_incoming_change(conflict)));
         break;
     }
   SVN_ERR_ASSERT(reason_str && action_str);
@@ -296,8 +298,8 @@ svn_cl__get_human_readable_tree_conflict
   svn_wc_operation_t conflict_operation;
   svn_node_kind_t conflict_node_kind;
 
-  conflict_action = svn_client_conflict_get_action(conflict);
-  conflict_reason = svn_client_conflict_get_reason(conflict);
+  conflict_action = svn_client_conflict_get_incoming_change(conflict);
+  conflict_reason = svn_client_conflict_get_local_change(conflict);
   conflict_operation = svn_client_conflict_get_operation(conflict);
   conflict_node_kind = svn_client_conflict_get_node_kind(conflict);
 
@@ -434,11 +436,11 @@ append_tree_conflict_info_xml(svn_string
                   svn_client_conflict_get_operation(conflict), pool));
 
   tmp = svn_token__to_word(map_conflict_action_xml,
-                           svn_client_conflict_get_action(conflict));
+                           svn_client_conflict_get_incoming_change(conflict));
   svn_hash_sets(att_hash, "action", tmp);
 
   tmp = svn_token__to_word(map_conflict_reason_xml,
-                           svn_client_conflict_get_reason(conflict));
+                           svn_client_conflict_get_local_change(conflict));
   svn_hash_sets(att_hash, "reason", tmp);
 
   /* Open the tree-conflict tag. */

Modified: subversion/trunk/subversion/svn/conflict-callbacks.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/conflict-callbacks.c?rev=1683257&r1=1683256&r2=1683257&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/conflict-callbacks.c (original)
+++ subversion/trunk/subversion/svn/conflict-callbacks.c Wed Jun  3 08:56:46 
2015
@@ -1185,7 +1185,7 @@ handle_tree_conflict(svn_wc_conflict_res
         {
           svn_wc_conflict_reason_t reason;
 
-          reason = svn_client_conflict_get_reason(desc);
+          reason = svn_client_conflict_get_local_change(desc);
           if (reason == svn_wc_conflict_reason_moved_away)
             {
               tc_opts = tree_conflict_options_update_moved_away;
@@ -1193,7 +1193,7 @@ handle_tree_conflict(svn_wc_conflict_res
           else if (reason == svn_wc_conflict_reason_deleted ||
                    reason == svn_wc_conflict_reason_replaced)
             {
-              if (svn_client_conflict_get_action(desc) ==
+              if (svn_client_conflict_get_incoming_change(desc) ==
                   svn_wc_conflict_action_edit &&
                   svn_client_conflict_get_node_kind(desc) == svn_node_dir)
                 tc_opts = tree_conflict_options_update_edit_deleted_dir;
@@ -1365,8 +1365,9 @@ conflict_func_interactive(svn_wc_conflic
      Conflicting edits on a property.
   */
   if (((svn_client_conflict_get_kind(desc) == svn_wc_conflict_kind_text)
-       && (svn_client_conflict_get_action(desc) == svn_wc_conflict_action_edit)
-       && (svn_client_conflict_get_reason(desc) ==
+       && (svn_client_conflict_get_incoming_change(desc) ==
+           svn_wc_conflict_action_edit)
+       && (svn_client_conflict_get_local_change(desc) ==
            svn_wc_conflict_reason_edited)))
     SVN_ERR(handle_text_conflict(*result, desc, b, scratch_pool));
   else if (svn_client_conflict_get_kind(desc) == svn_wc_conflict_kind_property)


Reply via email to