diff --git a/subversion/include/svn_client.h b/subversion/include/svn_client.h
index d4b2081..03f3cba 100644
--- a/subversion/include/svn_client.h
+++ b/subversion/include/svn_client.h
@@ -4406,18 +4406,18 @@
   /* Options for local delete/replace vs incoming edit on update. */
   svn_client_conflict_option_update_any_moved_away_children,
 
-  /* Options for incoming add vs local 'obstruction'. */
+  /* Options for incoming add vs local add or obstruction. */
   svn_client_conflict_option_incoming_add_ignore,
 
-  /* Options for incoming file add vs local file 'obstruction' on merge. */
-  svn_client_conflict_option_merge_incoming_added_file_text_merge,
-  svn_client_conflict_option_merge_incoming_added_file_replace,
-  svn_client_conflict_option_merge_incoming_added_file_replace_and_merge,
+  /* Options for incoming file add vs local file add or obstruction. */
+  svn_client_conflict_option_incoming_added_file_text_merge,
+  svn_client_conflict_option_incoming_added_file_replace,
+  svn_client_conflict_option_incoming_added_file_replace_and_merge,
 
-  /* Options for incoming dir add vs local dir 'obstruction' on merge. */
-  svn_client_conflict_option_merge_incoming_added_dir_merge,
-  svn_client_conflict_option_merge_incoming_added_dir_replace,
-  svn_client_conflict_option_merge_incoming_added_dir_replace_and_merge,
+  /* Options for incoming dir add vs local dir add or obstruction. */
+  svn_client_conflict_option_incoming_added_dir_merge,
+  svn_client_conflict_option_incoming_added_dir_replace,
+  svn_client_conflict_option_incoming_added_dir_replace_and_merge,
 
   /* Options for incoming delete vs any */
   svn_client_conflict_option_incoming_delete_ignore,
diff --git a/subversion/libsvn_client/conflicts.c b/subversion/libsvn_client/conflicts.c
index bf34c6e..2f7faa6 100644
--- a/subversion/libsvn_client/conflicts.c
+++ b/subversion/libsvn_client/conflicts.c
@@ -6512,9 +6512,9 @@
 
 /* Configure 'incoming add ignore' resolution option for a tree conflict. */
 static svn_error_t *
-configure_option_merge_incoming_add_ignore(svn_client_conflict_t *conflict,
-                                           apr_array_header_t *options,
-                                           apr_pool_t *scratch_pool)
+configure_option_incoming_add_ignore(svn_client_conflict_t *conflict,
+                                     apr_array_header_t *options,
+                                     apr_pool_t *scratch_pool)
 {
   svn_wc_operation_t operation;
   svn_wc_conflict_action_t incoming_change;
@@ -6557,10 +6557,9 @@
 /* Configure 'incoming added file text merge' resolution option for a tree
  * conflict. */
 static svn_error_t *
-configure_option_merge_incoming_added_file_text_merge(
-  svn_client_conflict_t *conflict,
-  apr_array_header_t *options,
-  apr_pool_t *scratch_pool)
+configure_option_incoming_added_file_text_merge(svn_client_conflict_t *conflict,
+                                                apr_array_header_t *options,
+                                                apr_pool_t *scratch_pool)
 {
   svn_wc_operation_t operation;
   svn_wc_conflict_action_t incoming_change;
@@ -6591,7 +6590,7 @@
       option = apr_pcalloc(options->pool, sizeof(*option));
       option->pool = options->pool;
       option->id =
-        svn_client_conflict_option_merge_incoming_added_file_text_merge;
+        svn_client_conflict_option_incoming_added_file_text_merge;
       SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, conflict->ctx->wc_ctx,
                                  conflict->local_abspath, scratch_pool,
                                  scratch_pool));
@@ -6613,10 +6612,9 @@
 /* Configure 'incoming added file replace' resolution option for a tree
  * conflict. */
 static svn_error_t *
-configure_option_merge_incoming_added_file_replace(
-  svn_client_conflict_t *conflict,
-  apr_array_header_t *options,
-  apr_pool_t *scratch_pool)
+configure_option_incoming_added_file_replace(svn_client_conflict_t *conflict,
+                                             apr_array_header_t *options,
+                                             apr_pool_t *scratch_pool)
 {
   svn_wc_operation_t operation;
   svn_wc_conflict_action_t incoming_change;
@@ -6646,7 +6644,7 @@
 
       option = apr_pcalloc(options->pool, sizeof(*option));
       option->pool = options->pool;
-      option->id = svn_client_conflict_option_merge_incoming_added_file_replace;
+      option->id = svn_client_conflict_option_incoming_added_file_replace;
       SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, conflict->ctx->wc_ctx,
                                  conflict->local_abspath, scratch_pool,
                                  scratch_pool));
@@ -6668,7 +6666,7 @@
 /* Configure 'incoming added file replace and merge' resolution option for a
  * tree conflict. */
 static svn_error_t *
-configure_option_merge_incoming_added_file_replace_and_merge(
+configure_option_incoming_added_file_replace_and_merge(
   svn_client_conflict_t *conflict,
   apr_array_header_t *options,
   apr_pool_t *scratch_pool)
@@ -6702,7 +6700,7 @@
       option = apr_pcalloc(options->pool, sizeof(*option));
       option->pool = options->pool;
       option->id =
-        svn_client_conflict_option_merge_incoming_added_file_replace_and_merge;
+        svn_client_conflict_option_incoming_added_file_replace_and_merge;
       SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, conflict->ctx->wc_ctx,
                                  conflict->local_abspath, scratch_pool,
                                  scratch_pool));
@@ -6726,9 +6724,9 @@
 /* Configure 'incoming added dir merge' resolution option for a tree
  * conflict. */
 static svn_error_t *
-configure_option_merge_incoming_added_dir_merge(svn_client_conflict_t *conflict,
-                                                apr_array_header_t *options,
-                                                apr_pool_t *scratch_pool)
+configure_option_incoming_added_dir_merge(svn_client_conflict_t *conflict,
+                                          apr_array_header_t *options,
+                                          apr_pool_t *scratch_pool)
 {
   svn_wc_operation_t operation;
   svn_wc_conflict_action_t incoming_change;
@@ -6758,7 +6756,7 @@
 
       option = apr_pcalloc(options->pool, sizeof(*option));
       option->pool = options->pool;
-      option->id = svn_client_conflict_option_merge_incoming_added_dir_merge;
+      option->id = svn_client_conflict_option_incoming_added_dir_merge;
       SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, conflict->ctx->wc_ctx,
                                  conflict->local_abspath, scratch_pool,
                                  scratch_pool));
@@ -6780,10 +6778,9 @@
 /* Configure 'incoming added dir replace' resolution option for a tree
  * conflict. */
 static svn_error_t *
-configure_option_merge_incoming_added_dir_replace(
-  svn_client_conflict_t *conflict,
-  apr_array_header_t *options,
-  apr_pool_t *scratch_pool)
+configure_option_incoming_added_dir_replace(svn_client_conflict_t *conflict,
+                                            apr_array_header_t *options,
+                                            apr_pool_t *scratch_pool)
 {
   svn_wc_operation_t operation;
   svn_wc_conflict_action_t incoming_change;
@@ -6814,7 +6811,7 @@
       option = apr_pcalloc(options->pool, sizeof(*option));
       option->pool = options->pool;
       option->id =
-        svn_client_conflict_option_merge_incoming_added_dir_replace;
+        svn_client_conflict_option_incoming_added_dir_replace;
       SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, conflict->ctx->wc_ctx,
                                  conflict->local_abspath, scratch_pool,
                                  scratch_pool));
@@ -6836,7 +6833,7 @@
 /* Configure 'incoming added dir replace and merge' resolution option
  * for a tree conflict. */
 static svn_error_t *
-configure_option_merge_incoming_added_dir_replace_and_merge(
+configure_option_incoming_added_dir_replace_and_merge(
   svn_client_conflict_t *conflict,
   apr_array_header_t *options,
   apr_pool_t *scratch_pool)
@@ -6870,7 +6867,7 @@
       option = apr_pcalloc(options->pool, sizeof(*option));
       option->pool = options->pool;
       option->id =
-        svn_client_conflict_option_merge_incoming_added_dir_replace_and_merge;
+        svn_client_conflict_option_incoming_added_dir_replace_and_merge;
       SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, conflict->ctx->wc_ctx,
                                  conflict->local_abspath, scratch_pool,
                                  scratch_pool));
@@ -7399,21 +7396,22 @@
   SVN_ERR(configure_option_update_move_destination(conflict, *options));
   SVN_ERR(configure_option_update_raise_moved_away_children(conflict,
                                                             *options));
-  SVN_ERR(configure_option_merge_incoming_add_ignore(conflict, *options,
-                                                     scratch_pool));
-  SVN_ERR(configure_option_merge_incoming_added_file_text_merge(conflict,
+  SVN_ERR(configure_option_incoming_add_ignore(conflict, *options,
+                                               scratch_pool));
+  SVN_ERR(configure_option_incoming_added_file_text_merge(conflict, *options,
+                                                          scratch_pool));
+  SVN_ERR(configure_option_incoming_added_file_replace(conflict, *options,
+                                                       scratch_pool));
+  SVN_ERR(configure_option_incoming_added_file_replace_and_merge(conflict,
+                                                                 *options,
+                                                                 scratch_pool));
+  SVN_ERR(configure_option_incoming_added_dir_merge(conflict, *options,
+                                                    scratch_pool));
+  SVN_ERR(configure_option_incoming_added_dir_replace(conflict, *options,
+                                                      scratch_pool));
+  SVN_ERR(configure_option_incoming_added_dir_replace_and_merge(conflict,
                                                                 *options,
                                                                 scratch_pool));
-  SVN_ERR(configure_option_merge_incoming_added_file_replace(
-            conflict, *options, scratch_pool));
-  SVN_ERR(configure_option_merge_incoming_added_file_replace_and_merge(
-            conflict, *options, scratch_pool));
-  SVN_ERR(configure_option_merge_incoming_added_dir_merge(conflict, *options,
-                                                          scratch_pool));
-  SVN_ERR(configure_option_merge_incoming_added_dir_replace(conflict, *options,
-                                                            scratch_pool));
-  SVN_ERR(configure_option_merge_incoming_added_dir_replace_and_merge(
-            conflict, *options, scratch_pool));
   SVN_ERR(configure_option_incoming_delete_ignore(conflict, *options,
                                                   scratch_pool));
   SVN_ERR(configure_option_incoming_delete_accept(conflict, *options,
diff --git a/subversion/svn/conflict-callbacks.c b/subversion/svn/conflict-callbacks.c
index 2e187e0..d076c44 100644
--- a/subversion/svn/conflict-callbacks.c
+++ b/subversion/svn/conflict-callbacks.c
@@ -425,19 +425,19 @@
 
   /* Options for incoming file add vs local file add upon merge. */
   { "m", N_("merge the files"), NULL,
-    svn_client_conflict_option_merge_incoming_added_file_text_merge },
+    svn_client_conflict_option_incoming_added_file_text_merge },
   { "R", N_("replace my file with incoming file"), NULL,
-    svn_client_conflict_option_merge_incoming_added_file_replace },
+    svn_client_conflict_option_incoming_added_file_replace },
   { "M", N_("replace my file with incoming file and merge the files"), NULL,
-    svn_client_conflict_option_merge_incoming_added_file_replace_and_merge },
+    svn_client_conflict_option_incoming_added_file_replace_and_merge },
 
   /* Options for incoming dir add vs local dir add upon merge. */
   { "m", N_("merge the directories"), NULL,
-    svn_client_conflict_option_merge_incoming_added_dir_merge },
+    svn_client_conflict_option_incoming_added_dir_merge },
   { "R", N_("replace my directory with incoming directory"), NULL,
-    svn_client_conflict_option_merge_incoming_added_dir_replace },
+    svn_client_conflict_option_incoming_added_dir_replace },
   { "M", N_("replace my directory with incoming directory and merge"), NULL,
-    svn_client_conflict_option_merge_incoming_added_dir_replace_and_merge },
+    svn_client_conflict_option_incoming_added_dir_replace_and_merge },
 
   /* Options for incoming delete vs any. */
   { "i", N_("ignore incoming deletion"), NULL,
diff --git a/subversion/tests/libsvn_client/conflicts-test.c b/subversion/tests/libsvn_client/conflicts-test.c
index 3490630..3ba3424 100644
--- a/subversion/tests/libsvn_client/conflicts-test.c
+++ b/subversion/tests/libsvn_client/conflicts-test.c
@@ -289,7 +289,7 @@
                                   ctx, b->pool, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_file_text_merge,
+            svn_client_conflict_option_incoming_added_file_text_merge,
             b->pool));
 
   /* Ensure that the file has the expected status. */
@@ -363,7 +363,7 @@
                                   ctx, b->pool, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_file_replace,
+            svn_client_conflict_option_incoming_added_file_replace,
             b->pool));
 
   /* Ensure that the file has the expected status. */
@@ -437,7 +437,7 @@
   SVN_ERR(
     svn_client_conflict_tree_resolve_by_id(
       conflict,
-      svn_client_conflict_option_merge_incoming_added_file_replace_and_merge,
+      svn_client_conflict_option_incoming_added_file_replace_and_merge,
       b->pool));
 
   /* Ensure that the file has the expected status. */
@@ -937,7 +937,7 @@
   SVN_ERR(svn_client_conflict_tree_get_details(conflict, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_dir_merge,
+            svn_client_conflict_option_incoming_added_dir_merge,
             b->pool));
 
   /* Ensure that the directory has the expected status. */
@@ -1030,7 +1030,7 @@
   SVN_ERR(svn_client_conflict_tree_get_details(conflict, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_dir_merge,
+            svn_client_conflict_option_incoming_added_dir_merge,
             b->pool));
 
   /* Ensure that the directory has the expected status. */
@@ -1122,7 +1122,7 @@
   SVN_ERR(svn_client_conflict_tree_get_details(conflict, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_dir_merge,
+            svn_client_conflict_option_incoming_added_dir_merge,
             b->pool));
 
   /* Ensure that the directory has the expected status. */
@@ -1233,7 +1233,7 @@
   SVN_ERR(svn_client_conflict_tree_get_details(conflict, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_dir_replace,
+            svn_client_conflict_option_incoming_added_dir_replace,
             b->pool));
 
   /* Ensure that the directory has the expected status. */
@@ -1305,7 +1305,7 @@
   SVN_ERR(svn_client_conflict_tree_get_details(conflict, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_dir_replace_and_merge,
+            svn_client_conflict_option_incoming_added_dir_replace_and_merge,
             b->pool));
 
   /* Ensure that the directory has the expected status. */
@@ -1391,7 +1391,7 @@
   SVN_ERR(svn_client_conflict_tree_get_details(conflict, b->pool));
   SVN_ERR(svn_client_conflict_tree_resolve_by_id(
             conflict,
-            svn_client_conflict_option_merge_incoming_added_dir_replace_and_merge,
+            svn_client_conflict_option_incoming_added_dir_replace_and_merge,
             b->pool));
 
   /* Ensure that the directory has the expected status. */
