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 2013/02/06 22:33:37 UTC

svn commit: r1443226 - /subversion/trunk/subversion/svn/conflict-callbacks.c

Author: stsp
Date: Wed Feb  6 21:33:37 2013
New Revision: 1443226

URL: http://svn.apache.org/viewvc?rev=1443226&view=rev
Log:
Tweak the option descriptions shown by the 'help' option of the interactive
conflict prompt, for the case where there was a tree-conflict with a local
move during update/switch.

* subversion/svn/conflict-callbacks.c
  (tree_conflict_options_update_moved_away): New option menu for update-move
   conflicts, explaining the effect of the possible options more clearly than
   the standard tree-conflicts menu does.
  (handle_tree_conflict): Display the new update-move menu if appropriate.

Modified:
    subversion/trunk/subversion/svn/conflict-callbacks.c

Modified: subversion/trunk/subversion/svn/conflict-callbacks.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/conflict-callbacks.c?rev=1443226&r1=1443225&r2=1443226&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/conflict-callbacks.c (original)
+++ subversion/trunk/subversion/svn/conflict-callbacks.c Wed Feb  6 21:33:37 2013
@@ -390,6 +390,21 @@ static const resolver_option_t tree_conf
   { NULL }
 };
 
+static const resolver_option_t tree_conflict_options_update_moved_away[] =
+{
+  { "p",  "postpone",         N_("resolve the conflict later"),
+                              svn_wc_conflict_choose_postpone },
+  { "mc", "mine-conflict",    N_("apply the update to the move destination"),
+                              svn_wc_conflict_choose_mine_conflict },
+  { "tc", "theirs-conflict",  N_("break the move, change move destination into "
+                                 "a copy"),
+                              svn_wc_conflict_choose_theirs_conflict },
+  { "q",  "quit",             N_("postpone all remaining conflicts"),
+                              svn_cl__accept_postpone },
+  { "h",  "help",             N_("show this help (also '?')"), -1 },
+  { NULL }
+};
+
 /* Return a pointer to the option description in OPTIONS matching the
  * one- or two-character OPTION_CODE.  Return NULL if not found. */
 static const resolver_option_t *
@@ -823,11 +838,20 @@ handle_tree_conflict(svn_wc_conflict_res
   while (1)
     {
       const resolver_option_t *opt;
+      const resolver_option_t *tc_opts;
 
       svn_pool_clear(iterpool);
 
-      SVN_ERR(prompt_user(&opt, tree_conflict_options, NULL, b->pb,
-                          iterpool));
+      if ((desc->operation == svn_wc_operation_update ||
+           desc->operation == svn_wc_operation_switch) &&
+          desc->reason == svn_wc_conflict_reason_moved_away)
+        {
+          tc_opts = tree_conflict_options_update_moved_away;
+        }
+      else
+        tc_opts = tree_conflict_options;
+
+      SVN_ERR(prompt_user(&opt, tc_opts, NULL, b->pb, iterpool));
       if (! opt)
         continue;