Author: stsp
Date: Thu Aug 14 14:13:51 2014
New Revision: 1617953

URL: http://svn.apache.org/r1617953
Log:
Rename 'action' and 'reason' fields in svn_wc_conflict_description3_t
to 'incoming_change' and 'local_change', respectively. The new names
make it more apparent whether a given change was made in the source
or the target of an operation, especially with tree conflicts.

No functional change.

* subversion/include/svn_wc.h
  (svn_wc_conflict_description3_t): Rename 'action' to 'incoming_change'
   and 'reason' to 'local_change'. Enhance related documentation.

* subversion/libsvn_client/merge.c
  (record_tree_conflict, merge_file_opened, merge_dir_opened): Track renames.

* subversion/libsvn_wc/conflicts.c
  (generate_propconflict, read_tree_conflict_desc,
   read_prop_conflict_descs): Track renames.

* subversion/libsvn_wc/entries.c
  (write_entry): Track rename.

* subversion/libsvn_wc/tree_conflicts.c
  (svn_wc__deserialize_conflict, svn_wc__serialize_conflict,
   svn_wc__add_tree_conflict): Track renames.

* subversion/libsvn_wc/upgrade.c
  (svn_wc__upgrade_conflict_skel_from_raw): Track renames.

* subversion/libsvn_wc/util.c
  (svn_wc_conflict_description_create_text3, svn_wc__cd3_to_cd2): Track renames.

* subversion/tests/libsvn_wc/conflict-data-test.c
  (compare_conflict, tree_conflict_create, test_deserialize_tree_conflict,
   test_serialize_tree_conflict_data): Track renames.

* tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
  (raise_tree_conflict): Track renames.

Modified:
    subversion/trunk/subversion/include/svn_wc.h
    subversion/trunk/subversion/libsvn_client/merge.c
    subversion/trunk/subversion/libsvn_wc/conflicts.c
    subversion/trunk/subversion/libsvn_wc/entries.c
    subversion/trunk/subversion/libsvn_wc/tree_conflicts.c
    subversion/trunk/subversion/libsvn_wc/upgrade.c
    subversion/trunk/subversion/libsvn_wc/util.c
    subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c
    subversion/trunk/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c

Modified: subversion/trunk/subversion/include/svn_wc.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_wc.h?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_wc.h (original)
+++ subversion/trunk/subversion/include/svn_wc.h Thu Aug 14 14:13:51 2014
@@ -1792,14 +1792,20 @@ typedef struct svn_wc_conflict_descripti
    *  (Only if @c kind is 'text', else undefined.) */
   const char *mime_type;
 
-  /** The action being attempted on the conflicted node or property.
-   *  (When @c kind is 'text', this action must be 'edit'.) */
-  svn_wc_conflict_action_t action;
-
-  /** The state of the target node or property, relative to its merge-left
-   *  source, that is the reason for the conflict.
-   *  (When @c kind is 'text', this reason must be 'edited'.) */
-  svn_wc_conflict_reason_t reason;
+  /** The incoming action being attempted on the conflicted node or property.
+   *  When @c kind is 'text', this action must be 'edit', but generally it can
+   *  be any kind of possible change. */
+  svn_wc_conflict_action_t incoming_change;
+
+  /** The local change or state of the target node or property, relative
+   *  to its merge-left source, that conflicts with the incoming action.
+   *  When @c kind is 'text', this must be 'edited', but generally it can
+   *  be any kind of possible change.
+   *  Note that 'local' does not always refer to a working copy. A change
+   *  can be local to the target branch of a merge operation, for example,
+   *  and is not necessarily visible in a working copy of the target branch
+   *  at any given revision. */
+  svn_wc_conflict_reason_t local_change;
 
   /** If this is text-conflict and involves the merging of two files
    * descended from a common ancestor, here are the paths of up to

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Thu Aug 14 14:13:51 2014
@@ -1367,8 +1367,8 @@ record_tree_conflict(merge_cmd_baton_t *
                         local_abspath, node_kind, svn_wc_operation_merge,
                         left, right, result_pool);
 
-      conflict->action = action;
-      conflict->reason = reason;
+      conflict->incoming_change = action;
+      conflict->local_change = reason;
 
       /* May return SVN_ERR_WC_PATH_UNEXPECTED_STATUS */
       if (existing_conflict)
@@ -1873,7 +1873,7 @@ merge_file_opened(void **new_file_baton,
           && (old_tc = svn_hash_gets(pdb->new_tree_conflicts, local_abspath)))
         {
           fb->tree_conflict_action = svn_wc_conflict_action_replace;
-          fb->tree_conflict_reason = old_tc->reason;
+          fb->tree_conflict_reason = old_tc->local_change;
 
           /* Update the tree conflict to store that this is a replace */
           SVN_ERR(record_tree_conflict(merge_b, local_abspath, pdb,
@@ -1883,8 +1883,8 @@ merge_file_opened(void **new_file_baton,
                                        old_tc, FALSE,
                                        scratch_pool));
 
-          if (old_tc->reason == svn_wc_conflict_reason_deleted
-              || old_tc->reason == svn_wc_conflict_reason_moved_away)
+          if (old_tc->local_change == svn_wc_conflict_reason_deleted
+              || old_tc->local_change == svn_wc_conflict_reason_moved_away)
             {
               /* Issue #3806: Incoming replacements on local deletes produce
                  inconsistent result.
@@ -2649,10 +2649,10 @@ merge_dir_opened(void **new_dir_baton,
           && (old_tc = svn_hash_gets(pdb->new_tree_conflicts, local_abspath)))
         {
           db->tree_conflict_action = svn_wc_conflict_action_replace;
-          db->tree_conflict_reason = old_tc->reason;
+          db->tree_conflict_reason = old_tc->local_change;
 
-          if (old_tc->reason == svn_wc_conflict_reason_deleted
-             || old_tc->reason == svn_wc_conflict_reason_moved_away)
+          if (old_tc->local_change == svn_wc_conflict_reason_deleted
+             || old_tc->local_change == svn_wc_conflict_reason_moved_away)
             {
               /* Issue #3806: Incoming replacements on local deletes produce
                  inconsistent result.

Modified: subversion/trunk/subversion/libsvn_wc/conflicts.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_wc/conflicts.c Thu Aug 14 14:13:51 2014
@@ -1411,18 +1411,18 @@ generate_propconflict(svn_boolean_t *con
     }
 
   if (!incoming_old_val && incoming_new_val)
-    cdesc->action = svn_wc_conflict_action_add;
+    cdesc->incoming_change = svn_wc_conflict_action_add;
   else if (incoming_old_val && !incoming_new_val)
-    cdesc->action = svn_wc_conflict_action_delete;
+    cdesc->incoming_change = svn_wc_conflict_action_delete;
   else
-    cdesc->action = svn_wc_conflict_action_edit;
+    cdesc->incoming_change = svn_wc_conflict_action_edit;
 
   if (base_val && !working_val)
-    cdesc->reason = svn_wc_conflict_reason_deleted;
+    cdesc->local_change = svn_wc_conflict_reason_deleted;
   else if (!base_val && working_val)
-    cdesc->reason = svn_wc_conflict_reason_obstructed;
+    cdesc->local_change = svn_wc_conflict_reason_obstructed;
   else
-    cdesc->reason = svn_wc_conflict_reason_edited;
+    cdesc->local_change = svn_wc_conflict_reason_edited;
 
   /* Invoke the interactive conflict callback. */
   SVN_ERR(conflict_func(&result, svn_wc__cd3_to_cd2(cdesc, scratch_pool),
@@ -1916,8 +1916,8 @@ read_tree_conflict_desc(svn_wc_conflict_
                                                    operation,
                                                    left_version, right_version,
                                                    result_pool);
-  (*desc)->reason = local_change;
-  (*desc)->action = incoming_change;
+  (*desc)->local_change = local_change;
+  (*desc)->incoming_change = incoming_change;
 
   return SVN_NO_ERROR;
 }
@@ -2187,19 +2187,19 @@ read_prop_conflict_descs(apr_array_heade
 
       /* Compute the incoming side of the conflict ('action'). */
       if (their_value == NULL)
-        desc->action = svn_wc_conflict_action_delete;
+        desc->incoming_change = svn_wc_conflict_action_delete;
       else if (old_value == NULL)
-        desc->action = svn_wc_conflict_action_add;
+        desc->incoming_change = svn_wc_conflict_action_add;
       else
-        desc->action = svn_wc_conflict_action_edit;
+        desc->incoming_change = svn_wc_conflict_action_edit;
 
       /* Compute the local side of the conflict ('reason'). */
       if (my_value == NULL)
-        desc->reason = svn_wc_conflict_reason_deleted;
+        desc->local_change = svn_wc_conflict_reason_deleted;
       else if (old_value == NULL)
-        desc->reason = svn_wc_conflict_reason_added;
+        desc->local_change = svn_wc_conflict_reason_added;
       else
-        desc->reason = svn_wc_conflict_reason_edited;
+        desc->local_change = svn_wc_conflict_reason_edited;
 
       desc->prop_reject_abspath = apr_pstrdup(result_pool, prop_reject_file);
 

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Thu Aug 14 14:13:51 2014
@@ -1911,7 +1911,7 @@ write_entry(struct write_baton **entry_n
 
           /* Fix dubious data stored by old clients, local adds don't have
              a repository URL. */
-          if (conflict->reason == svn_wc_conflict_reason_added)
+          if (conflict->local_change == svn_wc_conflict_reason_added)
             conflict->src_left_version = NULL;
 
           SVN_ERR(svn_wc__serialize_conflict(&new_skel, conflict,

Modified: subversion/trunk/subversion/libsvn_wc/tree_conflicts.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/tree_conflicts.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/tree_conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_wc/tree_conflicts.c Thu Aug 14 14:13:51 
2014
@@ -269,8 +269,8 @@ svn_wc__deserialize_conflict(const svn_w
   new_conflict = svn_wc_conflict_description_create_tree3(victim_abspath,
     node_kind, operation, src_left_version, src_right_version,
     result_pool);
-  new_conflict->action = action;
-  new_conflict->reason = reason;
+  new_conflict->incoming_change = action;
+  new_conflict->local_change = reason;
 
   *conflict = new_conflict;
 
@@ -353,13 +353,13 @@ svn_wc__serialize_conflict(svn_skel_t **
   else
     SVN_ERR(prepend_version_info_skel(c_skel, &null_version, result_pool));
 
-  /* reason */
-  skel_prepend_enum(c_skel, svn_wc__conflict_reason_map, conflict->reason,
-                    result_pool);
-
-  /* action */
-  skel_prepend_enum(c_skel, svn_wc__conflict_action_map, conflict->action,
-                    result_pool);
+  /* local change */
+  skel_prepend_enum(c_skel, svn_wc__conflict_reason_map,
+                    conflict->local_change, result_pool);
+
+  /* incoming change */
+  skel_prepend_enum(c_skel, svn_wc__conflict_action_map,
+                    conflict->incoming_change, result_pool);
 
   /* operation */
   skel_prepend_enum(c_skel, svn_wc__operation_map, conflict->operation,
@@ -409,10 +409,9 @@ svn_wc__add_tree_conflict(svn_wc_context
   svn_error_t *err;
 
   SVN_ERR_ASSERT(conflict != NULL);
-  SVN_ERR_ASSERT(conflict->operation == svn_wc_operation_merge
-                 || (conflict->reason != svn_wc_conflict_reason_moved_away
-                     && conflict->reason != svn_wc_conflict_reason_moved_here)
-                );
+  SVN_ERR_ASSERT(conflict->operation == svn_wc_operation_merge ||
+                 (conflict->local_change != svn_wc_conflict_reason_moved_away 
&&
+                  conflict->local_change != 
svn_wc_conflict_reason_moved_here));
 
   /* Re-adding an existing tree conflict victim is an error. */
   err = svn_wc__internal_conflicted_p(NULL, NULL, &existing_conflict,
@@ -438,8 +437,8 @@ svn_wc__add_tree_conflict(svn_wc_context
 
   SVN_ERR(svn_wc__conflict_skel_add_tree_conflict(conflict_skel, wc_ctx->db,
                                                   conflict->local_abspath,
-                                                  conflict->reason,
-                                                  conflict->action,
+                                                  conflict->local_change,
+                                                  conflict->incoming_change,
                                                   NULL,
                                                   scratch_pool, scratch_pool));
 

Modified: subversion/trunk/subversion/libsvn_wc/upgrade.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/upgrade.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/upgrade.c (original)
+++ subversion/trunk/subversion/libsvn_wc/upgrade.c Thu Aug 14 14:13:51 2014
@@ -1450,8 +1450,8 @@ svn_wc__upgrade_conflict_skel_from_raw(s
 
       SVN_ERR(svn_wc__conflict_skel_add_tree_conflict(conflict_data,
                                                       db, wri_abspath,
-                                                      tc->reason,
-                                                      tc->action,
+                                                      tc->local_change,
+                                                      tc->incoming_change,
                                                       NULL,
                                                       scratch_pool,
                                                       scratch_pool));

Modified: subversion/trunk/subversion/libsvn_wc/util.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/util.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/util.c (original)
+++ subversion/trunk/subversion/libsvn_wc/util.c Thu Aug 14 14:13:51 2014
@@ -200,8 +200,8 @@ svn_wc_conflict_description_create_text3
   conflict->local_abspath = apr_pstrdup(result_pool, local_abspath);
   conflict->node_kind = svn_node_file;
   conflict->kind = svn_wc_conflict_kind_text;
-  conflict->action = svn_wc_conflict_action_edit;
-  conflict->reason = svn_wc_conflict_reason_edited;
+  conflict->incoming_change = svn_wc_conflict_action_edit;
+  conflict->local_change = svn_wc_conflict_reason_edited;
   return conflict;
 }
 
@@ -384,8 +384,8 @@ svn_wc__cd3_to_cd2(const svn_wc_conflict
   new_conflict->is_binary = conflict->is_binary;
   if (conflict->mime_type)
     new_conflict->mime_type = apr_pstrdup(result_pool, conflict->mime_type);
-  new_conflict->action = conflict->action;
-  new_conflict->reason = conflict->reason;
+  new_conflict->action = conflict->incoming_change;
+  new_conflict->reason = conflict->local_change;
   if (conflict->base_abspath)
     new_conflict->base_abspath = apr_pstrdup(result_pool,
                                              conflict->base_abspath);

Modified: subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_wc/conflict-data-test.c Thu Aug 14 
14:13:51 2014
@@ -102,8 +102,8 @@ compare_conflict(const svn_wc_conflict_d
   ASSERT_STR_EQ(actual->property_name,  expected->property_name);
   ASSERT_INT_EQ(actual->is_binary,      expected->is_binary);
   ASSERT_STR_EQ(actual->mime_type,      expected->mime_type);
-  ASSERT_INT_EQ(actual->action,         expected->action);
-  ASSERT_INT_EQ(actual->reason,         expected->reason);
+  ASSERT_INT_EQ(actual->incoming_change, expected->incoming_change);
+  ASSERT_INT_EQ(actual->local_change,   expected->local_change);
   ASSERT_STR_EQ(actual->base_abspath,   expected->base_abspath);
   ASSERT_STR_EQ(actual->their_abspath,  expected->their_abspath);
   ASSERT_STR_EQ(actual->my_abspath,     expected->my_abspath);
@@ -208,8 +208,8 @@ tree_conflict_create(const char *local_a
   conflict = svn_wc_conflict_description_create_tree3(
                     local_abspath, node_kind, operation,
                     left, right, result_pool);
-  conflict->action = action;
-  conflict->reason = reason;
+  conflict->incoming_change = action;
+  conflict->local_change = reason;
   return conflict;
 }
 
@@ -229,15 +229,15 @@ test_deserialize_tree_conflict(apr_pool_
   exp_conflict = svn_wc_conflict_description_create_tree3(
                         local_abspath, svn_node_file, svn_wc_operation_update,
                         NULL, NULL, pool);
-  exp_conflict->action = svn_wc_conflict_action_delete;
-  exp_conflict->reason = svn_wc_conflict_reason_edited;
+  exp_conflict->incoming_change = svn_wc_conflict_action_delete;
+  exp_conflict->local_change = svn_wc_conflict_reason_edited;
 
   skel = svn_skel__parse(tree_conflict_data, strlen(tree_conflict_data), pool);
   SVN_ERR(svn_wc__deserialize_conflict(&conflict, skel, "", pool, pool));
 
   if ((conflict->node_kind != exp_conflict->node_kind) ||
-      (conflict->action    != exp_conflict->action) ||
-      (conflict->reason    != exp_conflict->reason) ||
+      (conflict->incoming_change != exp_conflict->incoming_change) ||
+      (conflict->local_change != exp_conflict->local_change) ||
       (conflict->operation != exp_conflict->operation) ||
       (strcmp(conflict->local_abspath, exp_conflict->local_abspath) != 0))
     return fail(pool, "Unexpected tree conflict");
@@ -259,8 +259,8 @@ test_serialize_tree_conflict_data(apr_po
   conflict = svn_wc_conflict_description_create_tree3(
                     local_abspath, svn_node_file, svn_wc_operation_update,
                     NULL, NULL, pool);
-  conflict->action = svn_wc_conflict_action_delete;
-  conflict->reason = svn_wc_conflict_reason_edited;
+  conflict->incoming_change = svn_wc_conflict_action_delete;
+  conflict->local_change = svn_wc_conflict_reason_edited;
 
   SVN_ERR(svn_wc__serialize_conflict(&skel, conflict, pool, pool));
   tree_conflict_data = svn_skel__unparse(skel, pool)->data;

Modified: subversion/trunk/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c?rev=1617953&r1=1617952&r2=1617953&view=diff
==============================================================================
--- subversion/trunk/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c 
(original)
+++ subversion/trunk/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c Thu 
Aug 14 14:13:51 2014
@@ -208,8 +208,8 @@ raise_tree_conflict(int argc, const char
                                           peg_rev2, kind2, pool);
   c = svn_wc_conflict_description_create_tree3(wc_abspath, kind,
                                               operation, left, right, pool);
-  c->action = (svn_wc_conflict_action_t)action;
-  c->reason = (svn_wc_conflict_reason_t)reason;
+  c->incoming_change = (svn_wc_conflict_action_t)action;
+  c->local_change = (svn_wc_conflict_reason_t)reason;
 
   /* Raise the conflict */
   SVN_ERR(svn_wc_context_create(&wc_ctx, NULL, pool, pool));


Reply via email to