Author: rhuijben
Date: Sun Feb 8 10:58:43 2015
New Revision: 1658147
URL: http://svn.apache.org/r1658147
Log:
Tweak error messages when trying to resolve move conflicts where the move
information is no longer recorded in wc.db.
* subversion/libsvn_wc/conflicts.c
(resolve_tree_conflict_on_node): Tweak error messages in specific code paths.
Except for the changed messages no functional changes.
Modified:
subversion/trunk/subversion/libsvn_wc/conflicts.c
Modified: subversion/trunk/subversion/libsvn_wc/conflicts.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.c?rev=1658147&r1=1658146&r2=1658147&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_wc/conflicts.c Sun Feb 8 10:58:43 2015
@@ -2769,7 +2769,7 @@ resolve_tree_conflict_on_node(svn_boolea
scratch_pool));
}
else if (reason == svn_wc_conflict_reason_moved_away
- && action == svn_wc_conflict_action_edit)
+ && action == svn_wc_conflict_action_edit)
{
/* After updates, we can resolve local moved-away
* vs. any incoming change, either by updating the
@@ -2825,6 +2825,34 @@ resolve_tree_conflict_on_node(svn_boolea
svn_dirent_local_style(local_abspath,
scratch_pool));
}
+ else if (reason == svn_wc_conflict_reason_moved_away
+ && action != svn_wc_conflict_action_edit)
+ {
+ /* action added is impossible, because that would imply that
+ something was added, but before that already moved...
+ (which would imply a replace) */
+ SVN_ERR_ASSERT(action == svn_wc_conflict_action_delete
+ || action == svn_wc_conflict_action_replace);
+
+ if (conflict_choice == svn_wc_conflict_choose_merged)
+ {
+ /* Whatever was moved is removed at its original location by the
+ update. That must also remove the recording of the move, so
+ we don't have to do anything here. */
+
+ *did_resolve = TRUE;
+ }
+ else if (conflict_choice == svn_wc_conflict_choose_mine_conflict)
+ {
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE,
+ NULL,
+ _("Tree conflict can only be "
+ "resolved to 'working' state; "
+ "'%s' is no longer moved"),
+ svn_dirent_local_style(local_abspath,
+ scratch_pool));
+ }
+ }
}
if (! *did_resolve)