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/04/18 13:46:34 UTC
svn commit: r1739749 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: stsp
Date: Mon Apr 18 11:46:33 2016
New Revision: 1739749
URL: http://svn.apache.org/viewvc?rev=1739749&view=rev
Log:
In the conflict resolver, stop describing both the local change and incoming
change in the same function. Instead, always call a specific function to get
either the incoming or the local change description.
No functional change.
* subversion/libsvn_client/conflicts.c
(tree_conflict_get_description_func_t): This function now returns just
one description, not two.
(svn_client_conflict_t): Rename tree_conflict_get_description_func to
tree_conflict_get_incoming_description_func.
Add tree_conflict_get_local_description_func.
(describe_local_change): Rename to ...
(tree_conflict_get_local_description_generic): ... this.
(conflict_tree_get_description_generic): Rename to ...
(tree_conflict_get_incoming_description_generic): ... this and describe
the incoming change only.
(conflict_tree_get_description_incoming_delete,
describe_incoming_reverse_deletion_upon_merge,
conflict_tree_get_description_incoming_add,
describe_incoming_edit_list_modified_revs,
conflict_tree_get_description_incoming_edit): Describe incoming change only.
(svn_client_conflict_tree_get_description): Obtain incoming and local change
from separate functions.
(conflict_type_specific_setup): Set tree_conflict_get_local_description_func.
Track renamed struct svn_client_conflict_t member.
Modified:
subversion/trunk/subversion/libsvn_client/conflicts.c
Modified: subversion/trunk/subversion/libsvn_client/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1739749&r1=1739748&r2=1739749&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Mon Apr 18 11:46:33 2016
@@ -51,8 +51,7 @@
/* Describe a tree conflict. */
typedef svn_error_t *(*tree_conflict_get_description_func_t)(
- const char **incoming_change_description,
- const char **local_change_description,
+ const char **change_description,
svn_client_conflict_t *conflict,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
@@ -81,7 +80,10 @@ struct svn_client_conflict_t
apr_hash_t *resolved_props;
/* Ask a tree conflict to describe itself. */
- tree_conflict_get_description_func_t tree_conflict_get_description_func;
+ tree_conflict_get_description_func_t
+ tree_conflict_get_incoming_description_func;
+ tree_conflict_get_description_func_t
+ tree_conflict_get_local_description_func;
/* Ask a tree conflict to find out more information about itself
* by contacting the repository. */
@@ -976,13 +978,12 @@ describe_local_none_node_change(const ch
return SVN_NO_ERROR;
}
-/* Return a localised string representation of the local part of a tree
- conflict; NULL for non-localised odd cases. */
+/* Implements tree_conflict_get_description_func_t. */
static svn_error_t *
-describe_local_change(const char **description,
- svn_client_conflict_t *conflict,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+tree_conflict_get_local_description_generic(const char **description,
+ svn_client_conflict_t *conflict,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
svn_node_kind_t victim_node_kind;
@@ -1246,21 +1247,19 @@ svn_client_conflict_prop_get_description
/* Implements tree_conflict_get_description_func_t. */
static svn_error_t *
-conflict_tree_get_description_generic(const char **incoming_change_description,
- const char **local_change_description,
- svn_client_conflict_t *conflict,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+tree_conflict_get_incoming_description_generic(
+ const char **incoming_change_description,
+ svn_client_conflict_t *conflict,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
- const char *action, *reason;
+ const char *action;
svn_node_kind_t incoming_kind;
svn_wc_conflict_action_t conflict_action;
- svn_wc_conflict_reason_t conflict_reason;
svn_wc_operation_t conflict_operation;
svn_node_kind_t conflict_node_kind;
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_tree_get_victim_node_kind(conflict);
@@ -1286,13 +1285,11 @@ conflict_tree_get_description_generic(co
scratch_pool));
}
- SVN_ERR(describe_local_change(&reason, conflict, scratch_pool, scratch_pool));
action = describe_incoming_change(incoming_kind, conflict_action,
conflict_operation);
- if (action && reason)
+ if (action)
{
*incoming_change_description = apr_pstrdup(result_pool, action);
- *local_change_description = apr_pstrdup(result_pool, reason);
}
else
{
@@ -1304,11 +1301,6 @@ conflict_tree_get_description_generic(co
svn_node_kind_to_word(incoming_kind),
svn_token__to_word(map_conflict_action,
conflict_action));
- *local_change_description = apr_psprintf(result_pool,
- _("local %s %s"),
- svn_node_kind_to_word(conflict_node_kind),
- svn_token__to_word(map_conflict_reason,
- conflict_reason));
}
return SVN_NO_ERROR;
}
@@ -1894,14 +1886,12 @@ describe_incoming_reverse_addition_upon_
static svn_error_t *
conflict_tree_get_description_incoming_delete(
const char **incoming_change_description,
- const char **local_change_description,
svn_client_conflict_t *conflict,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const char *action, *reason;
+ const char *action;
svn_node_kind_t victim_node_kind;
- svn_wc_conflict_reason_t local_change;
svn_wc_operation_t conflict_operation;
const char *old_repos_relpath;
svn_revnum_t old_rev;
@@ -1910,20 +1900,12 @@ conflict_tree_get_description_incoming_d
struct conflict_tree_incoming_delete_details *details;
if (conflict->tree_conflict_incoming_details == NULL)
- return svn_error_trace(conflict_tree_get_description_generic(
+ return svn_error_trace(tree_conflict_get_incoming_description_generic(
incoming_change_description,
- local_change_description,
conflict, result_pool, scratch_pool));
- local_change = svn_client_conflict_get_local_change(conflict);
conflict_operation = svn_client_conflict_get_operation(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
- SVN_ERR(describe_local_change(&reason, conflict, scratch_pool, scratch_pool));
- if (reason == NULL)
- return svn_error_trace(conflict_tree_get_description_generic(
- incoming_change_description,
- local_change_description,
- conflict, result_pool, scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
&old_repos_relpath, &old_rev, NULL, conflict, scratch_pool,
scratch_pool));
@@ -1993,7 +1975,6 @@ conflict_tree_get_description_incoming_d
}
*incoming_change_description = apr_pstrdup(result_pool, action);
- *local_change_description = apr_pstrdup(result_pool, reason);
return SVN_NO_ERROR;
}
@@ -2715,14 +2696,12 @@ describe_incoming_reverse_deletion_upon_
static svn_error_t *
conflict_tree_get_description_incoming_add(
const char **incoming_change_description,
- const char **local_change_description,
svn_client_conflict_t *conflict,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const char *action, *reason;
+ const char *action;
svn_node_kind_t victim_node_kind;
- svn_wc_conflict_reason_t local_change;
svn_wc_operation_t conflict_operation;
const char *old_repos_relpath;
svn_revnum_t old_rev;
@@ -2733,20 +2712,12 @@ conflict_tree_get_description_incoming_a
struct conflict_tree_incoming_add_details *details;
if (conflict->tree_conflict_incoming_details == NULL)
- return svn_error_trace(conflict_tree_get_description_generic(
+ return svn_error_trace(tree_conflict_get_incoming_description_generic(
incoming_change_description,
- local_change_description,
conflict, result_pool, scratch_pool));
- local_change = svn_client_conflict_get_local_change(conflict);
conflict_operation = svn_client_conflict_get_operation(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
- SVN_ERR(describe_local_change(&reason, conflict, scratch_pool, scratch_pool));
- if (reason == NULL)
- return svn_error_trace(conflict_tree_get_description_generic(
- incoming_change_description,
- local_change_description,
- conflict, result_pool, scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
&old_repos_relpath, &old_rev, &old_node_kind, conflict,
@@ -2788,7 +2759,6 @@ conflict_tree_get_description_incoming_a
}
*incoming_change_description = apr_pstrdup(result_pool, action);
- *local_change_description = apr_pstrdup(result_pool, reason);
return SVN_NO_ERROR;
}
@@ -3136,14 +3106,12 @@ describe_incoming_edit_list_modified_rev
static svn_error_t *
conflict_tree_get_description_incoming_edit(
const char **incoming_change_description,
- const char **local_change_description,
svn_client_conflict_t *conflict,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const char *action, *reason;
+ const char *action;
svn_node_kind_t victim_node_kind;
- svn_wc_conflict_reason_t local_change;
svn_wc_operation_t conflict_operation;
const char *old_repos_relpath;
svn_revnum_t old_rev;
@@ -3154,9 +3122,8 @@ conflict_tree_get_description_incoming_e
apr_array_header_t *edits;
if (conflict->tree_conflict_incoming_details == NULL)
- return svn_error_trace(conflict_tree_get_description_generic(
+ return svn_error_trace(tree_conflict_get_incoming_description_generic(
incoming_change_description,
- local_change_description,
conflict, result_pool, scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
@@ -3166,15 +3133,8 @@ conflict_tree_get_description_incoming_e
&new_repos_relpath, &new_rev, &new_node_kind, conflict,
scratch_pool, scratch_pool));
- local_change = svn_client_conflict_get_local_change(conflict);
conflict_operation = svn_client_conflict_get_operation(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
- SVN_ERR(describe_local_change(&reason, conflict, scratch_pool, scratch_pool));
- if (reason == NULL)
- return svn_error_trace(conflict_tree_get_description_generic(
- incoming_change_description,
- local_change_description,
- conflict, result_pool, scratch_pool));
edits = conflict->tree_conflict_incoming_details;
@@ -3212,7 +3172,6 @@ conflict_tree_get_description_incoming_e
new_repos_relpath, new_rev);
*incoming_change_description = apr_pstrdup(result_pool, action);
- *local_change_description = apr_pstrdup(result_pool, reason);
return SVN_NO_ERROR;
}
@@ -3263,7 +3222,6 @@ conflict_tree_get_description_incoming_e
new_repos_relpath, old_rev);
*incoming_change_description = apr_pstrdup(result_pool, action);
- *local_change_description = apr_pstrdup(result_pool, reason);
return SVN_NO_ERROR;
}
@@ -3299,7 +3257,6 @@ conflict_tree_get_description_incoming_e
describe_incoming_edit_list_modified_revs(
edits, scratch_pool));
*incoming_change_description = apr_pstrdup(result_pool, action);
- *local_change_description = apr_pstrdup(result_pool, reason);
return SVN_NO_ERROR;
}
@@ -3312,10 +3269,15 @@ svn_client_conflict_tree_get_description
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- return svn_error_trace(conflict->tree_conflict_get_description_func(
- incoming_change_description,
- local_change_description,
- conflict, result_pool, scratch_pool));
+ SVN_ERR(conflict->tree_conflict_get_incoming_description_func(
+ incoming_change_description,
+ conflict, result_pool, scratch_pool));
+
+ SVN_ERR(conflict->tree_conflict_get_local_description_func(
+ local_change_description,
+ conflict, result_pool, scratch_pool));
+
+ return SVN_NO_ERROR;
}
void
@@ -4481,8 +4443,10 @@ conflict_type_specific_setup(svn_client_
return SVN_NO_ERROR;
/* Set a default description function. */
- conflict->tree_conflict_get_description_func =
- conflict_tree_get_description_generic;
+ conflict->tree_conflict_get_incoming_description_func =
+ tree_conflict_get_incoming_description_generic;
+ conflict->tree_conflict_get_local_description_func =
+ tree_conflict_get_local_description_generic;
operation = svn_client_conflict_get_operation(conflict);
incoming_change = svn_client_conflict_get_incoming_change(conflict);
@@ -4491,21 +4455,21 @@ conflict_type_specific_setup(svn_client_
if (incoming_change == svn_wc_conflict_action_delete ||
incoming_change == svn_wc_conflict_action_replace)
{
- conflict->tree_conflict_get_description_func =
+ conflict->tree_conflict_get_incoming_description_func =
conflict_tree_get_description_incoming_delete;
conflict->tree_conflict_get_incoming_details_func =
conflict_tree_get_details_incoming_delete;
}
else if (incoming_change == svn_wc_conflict_action_add)
{
- conflict->tree_conflict_get_description_func =
+ conflict->tree_conflict_get_incoming_description_func =
conflict_tree_get_description_incoming_add;
conflict->tree_conflict_get_incoming_details_func =
conflict_tree_get_details_incoming_add;
}
else if (incoming_change == svn_wc_conflict_action_edit)
{
- conflict->tree_conflict_get_description_func =
+ conflict->tree_conflict_get_incoming_description_func =
conflict_tree_get_description_incoming_edit;
conflict->tree_conflict_get_incoming_details_func =
conflict_tree_get_details_incoming_edit;