diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-08-05 16:22:51 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-08-05 16:22:51 +0000 |
commit | cf46733632c7279a9fd0fe6ce26f9185a4ae82a9 (patch) | |
tree | da27775a2161723ef342e91af41a8b51fedef405 /subversion/svn/cl-conflicts.c | |
parent | bb0ef45f7c46b0ae221b26265ef98a768c33f820 (diff) | |
download | subversion-tarball-master.tar.gz |
subversion-1.9.7HEADsubversion-1.9.7master
Diffstat (limited to 'subversion/svn/cl-conflicts.c')
-rw-r--r-- | subversion/svn/cl-conflicts.c | 84 |
1 files changed, 74 insertions, 10 deletions
diff --git a/subversion/svn/cl-conflicts.c b/subversion/svn/cl-conflicts.c index 440c9d7..8507e8c 100644 --- a/subversion/svn/cl-conflicts.c +++ b/subversion/svn/cl-conflicts.c @@ -69,11 +69,13 @@ static const svn_token_map_t map_conflict_kind_xml[] = /* Return a localised string representation of the local part of a conflict; NULL for non-localised odd cases. */ static const char * -local_reason_str(svn_node_kind_t kind, svn_wc_conflict_reason_t reason) +local_reason_str(svn_node_kind_t kind, svn_wc_conflict_reason_t reason, + svn_wc_operation_t operation) { switch (kind) { case svn_node_file: + case svn_node_symlink: switch (reason) { case svn_wc_conflict_reason_edited: @@ -83,7 +85,10 @@ local_reason_str(svn_node_kind_t kind, svn_wc_conflict_reason_t reason) case svn_wc_conflict_reason_deleted: return _("local file delete"); case svn_wc_conflict_reason_missing: - return _("local file missing"); + if (operation == svn_wc_operation_merge) + return _("local file missing or deleted or moved away"); + else + return _("local file missing"); case svn_wc_conflict_reason_unversioned: return _("local file unversioned"); case svn_wc_conflict_reason_added: @@ -106,7 +111,10 @@ local_reason_str(svn_node_kind_t kind, svn_wc_conflict_reason_t reason) case svn_wc_conflict_reason_deleted: return _("local dir delete"); case svn_wc_conflict_reason_missing: - return _("local dir missing"); + if (operation == svn_wc_operation_merge) + return _("local dir missing or deleted or moved away"); + else + return _("local dir missing"); case svn_wc_conflict_reason_unversioned: return _("local dir unversioned"); case svn_wc_conflict_reason_added: @@ -119,9 +127,32 @@ local_reason_str(svn_node_kind_t kind, svn_wc_conflict_reason_t reason) return _("local dir moved here"); } break; - case svn_node_symlink: case svn_node_none: case svn_node_unknown: + switch (reason) + { + case svn_wc_conflict_reason_edited: + return _("local edit"); + case svn_wc_conflict_reason_obstructed: + return _("local obstruction"); + case svn_wc_conflict_reason_deleted: + return _("local delete"); + case svn_wc_conflict_reason_missing: + if (operation == svn_wc_operation_merge) + return _("local missing or deleted or moved away"); + else + return _("local missing"); + case svn_wc_conflict_reason_unversioned: + return _("local unversioned"); + case svn_wc_conflict_reason_added: + return _("local add"); + case svn_wc_conflict_reason_replaced: + return _("local replace"); + case svn_wc_conflict_reason_moved_away: + return _("local moved away"); + case svn_wc_conflict_reason_moved_here: + return _("local moved here"); + } break; } return NULL; @@ -135,6 +166,7 @@ incoming_action_str(svn_node_kind_t kind, svn_wc_conflict_action_t action) switch (kind) { case svn_node_file: + case svn_node_symlink: switch (action) { case svn_wc_conflict_action_edit: @@ -142,9 +174,9 @@ incoming_action_str(svn_node_kind_t kind, svn_wc_conflict_action_t action) case svn_wc_conflict_action_add: return _("incoming file add"); case svn_wc_conflict_action_delete: - return _("incoming file delete"); + return _("incoming file delete or move"); case svn_wc_conflict_action_replace: - return _("incoming file replace"); + return _("incoming replace with file"); } break; case svn_node_dir: @@ -155,14 +187,24 @@ incoming_action_str(svn_node_kind_t kind, svn_wc_conflict_action_t action) case svn_wc_conflict_action_add: return _("incoming dir add"); case svn_wc_conflict_action_delete: - return _("incoming dir delete"); + return _("incoming dir delete or move"); case svn_wc_conflict_action_replace: - return _("incoming dir replace"); + return _("incoming replace with dir"); } break; - case svn_node_symlink: case svn_node_none: case svn_node_unknown: + switch (action) + { + case svn_wc_conflict_action_edit: + return _("incoming edit"); + case svn_wc_conflict_action_add: + return _("incoming add"); + case svn_wc_conflict_action_delete: + return _("incoming delete or move"); + case svn_wc_conflict_action_replace: + return _("incoming replace"); + } break; } return NULL; @@ -267,7 +309,8 @@ svn_cl__get_human_readable_tree_conflict_description( incoming_kind = conflict->src_right_version->node_kind; } - reason = local_reason_str(conflict->node_kind, conflict->reason); + reason = local_reason_str(conflict->node_kind, conflict->reason, + conflict->operation); action = incoming_action_str(incoming_kind, conflict->action); operation = operation_str(conflict->operation); SVN_ERR_ASSERT(operation); @@ -294,6 +337,27 @@ svn_cl__get_human_readable_tree_conflict_description( return SVN_NO_ERROR; } +svn_error_t * +svn_cl__get_human_readable_action_description( + const char **desc, + svn_wc_conflict_action_t action, + svn_wc_operation_t operation, + svn_node_kind_t kind, + apr_pool_t *pool) +{ + const char *action_s, *operation_s; + + action_s = incoming_action_str(kind, action); + operation_s = operation_str(operation); + + SVN_ERR_ASSERT(operation_s); + + *desc = apr_psprintf(pool, _("%s %s"), + action_s, operation_s); + + return SVN_NO_ERROR; +} + /* Helper for svn_cl__append_tree_conflict_info_xml(). * Appends the attributes of the given VERSION to ATT_HASH. |