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));