You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2012/10/16 03:08:26 UTC

svn commit: r1398597 - in /subversion/trunk/subversion: include/private/svn_client_private.h include/svn_client.h libsvn_client/merge.c svn/merge-cmd.c svn/mergeinfo-cmd.c

Author: julianfoad
Date: Tue Oct 16 01:08:26 2012
New Revision: 1398597

URL: http://svn.apache.org/viewvc?rev=1398597&view=rev
Log:
Make the symmetric merge APIs public.

* subversion/include/private/svn_client_private.h
  (svn_client__symmetric_merge_t, svn_client__find_symmetric_merge,
   svn_client__find_symmetric_merge_no_wc, svn_client__do_symmetric_merge,
   svn_client__symmetric_merge_is_reintegrate_like): Move and rename to ...

* subversion/include/svn_client.h
  (svn_client_symmetric_merge_t, svn_client_find_symmetric_merge,
   svn_client_find_symmetric_merge_no_wc, svn_client_do_symmetric_merge,
   svn_client_symmetric_merge_is_reintegrate_like): ... here.

* subversion/libsvn_client/merge.c,
  subversion/svn/merge-cmd.c,
  subversion/svn/mergeinfo-cmd.c:
    Track the renames.

Modified:
    subversion/trunk/subversion/include/private/svn_client_private.h
    subversion/trunk/subversion/include/svn_client.h
    subversion/trunk/subversion/libsvn_client/merge.c
    subversion/trunk/subversion/svn/merge-cmd.c
    subversion/trunk/subversion/svn/mergeinfo-cmd.c

Modified: subversion/trunk/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_client_private.h?rev=1398597&r1=1398596&r2=1398597&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_client_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_client_private.h Tue Oct 16 01:08:26 2012
@@ -226,54 +226,6 @@ svn_client__wc_node_get_origin(svn_clien
                                apr_pool_t *result_pool,
                                apr_pool_t *scratch_pool);
 
-
-/* Details of a symmetric merge. */
-typedef struct svn_client__symmetric_merge_t svn_client__symmetric_merge_t;
-
-/* Find the information needed to merge all unmerged changes from a source
- * branch into a target branch.  The information is the locations of the
- * youngest common ancestor, merge base, and such like.
- *
- * Set *MERGE to the information needed to merge all unmerged changes
- * (up to SOURCE_REVISION) from the source branch SOURCE_PATH_OR_URL @
- * SOURCE_REVISION into the target WC at TARGET_WCPATH.
- */
-svn_error_t *
-svn_client__find_symmetric_merge(svn_client__symmetric_merge_t **merge,
-                                 const char *source_path_or_url,
-                                 const svn_opt_revision_t *source_revision,
-                                 const char *target_wcpath,
-                                 svn_boolean_t allow_mixed_rev,
-                                 svn_boolean_t allow_local_mods,
-                                 svn_boolean_t allow_switched_subtrees,
-                                 svn_client_ctx_t *ctx,
-                                 apr_pool_t *result_pool,
-                                 apr_pool_t *scratch_pool);
-
-/* Find out what kind of symmetric merge would be needed, when the target
- * is only known as a repository location rather than a WC.
- *
- * Like svn_client__find_symmetric_merge() except that SOURCE_PATH_OR_URL @
- * SOURCE_REVISION should refer to a repository location and not a WC.
- *
- * ### The result, *MERGE_P, may not be suitable for passing to
- * svn_client__do_symmetric_merge().  The target WC state would not be
- * checked (as in the ALLOW_* flags).  We should resolve this problem:
- * perhaps add the allow_* params here, or provide another way of setting
- * them; and perhaps ensure __do_...() will accept the result iff given a
- * WC that matches the stored target location.
- */
-svn_error_t *
-svn_client__find_symmetric_merge_no_wc(
-                                 svn_client__symmetric_merge_t **merge_p,
-                                 const char *source_path_or_url,
-                                 const svn_opt_revision_t *source_revision,
-                                 const char *target_path_or_url,
-                                 const svn_opt_revision_t *target_revision,
-                                 svn_client_ctx_t *ctx,
-                                 apr_pool_t *result_pool,
-                                 apr_pool_t *scratch_pool);
-
 /* Set *YCA, *BASE, *RIGHT, *TARGET to the repository locations of the
  * youngest common ancestor of the branches, the base chosen for 3-way
  * merge, the right-hand side of the source diff, and the target WC.
@@ -286,45 +238,9 @@ svn_client__symmetric_merge_get_location
                                 svn_client__pathrev_t **base,
                                 svn_client__pathrev_t **right,
                                 svn_client__pathrev_t **target,
-                                const svn_client__symmetric_merge_t *merge,
+                                const svn_client_symmetric_merge_t *merge,
                                 apr_pool_t *result_pool);
 
-/* Perform a symmetric merge.
- *
- * Merge according to MERGE into the WC at TARGET_WCPATH.
- *
- * The other parameters are as in svn_client_merge4().
- *
- * ### TODO: There's little point in this function being the only way the
- * caller can use the result of svn_client__find_symmetric_merge().  The
- * contents of MERGE should be more public, or there should be other ways
- * the caller can use it, or these two functions should be combined into
- * one.  I want to make it more public, and also possibly have more ways
- * to use it in future (for example, do_symmetric_merge_with_step_by_-
- * step_confirmation).
- */
-svn_error_t *
-svn_client__do_symmetric_merge(const svn_client__symmetric_merge_t *merge,
-                               const char *target_wcpath,
-                               svn_depth_t depth,
-                               svn_boolean_t force,
-                               svn_boolean_t record_only,
-                               svn_boolean_t dry_run,
-                               const apr_array_header_t *merge_options,
-                               svn_client_ctx_t *ctx,
-                               apr_pool_t *scratch_pool);
-
-/* Return TRUE iff the symmetric merge represented by MERGE is going to be
- * a reintegrate-like merge: that is, merging in the opposite direction
- * from the last full merge.
- *
- * This function exists because the merge is NOT really symmetric and the
- * client can be more friendly if it knows something about the differences.
- */
-svn_boolean_t
-svn_client__symmetric_merge_is_reintegrate_like(
-        const svn_client__symmetric_merge_t *merge);
-
 
 #ifdef __cplusplus
 }

Modified: subversion/trunk/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1398597&r1=1398596&r2=1398597&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Tue Oct 16 01:08:26 2012
@@ -3373,6 +3373,90 @@ svn_client_diff_summarize_peg(const char
  * @{
  */
 
+/* Details of a symmetric merge. */
+typedef struct svn_client_symmetric_merge_t svn_client_symmetric_merge_t;
+
+/* Find the information needed to merge all unmerged changes from a source
+ * branch into a target branch.  The information is the locations of the
+ * youngest common ancestor, merge base, and such like.
+ *
+ * Set *MERGE to the information needed to merge all unmerged changes
+ * (up to SOURCE_REVISION) from the source branch SOURCE_PATH_OR_URL @
+ * SOURCE_REVISION into the target WC at TARGET_WCPATH.
+ */
+svn_error_t *
+svn_client_find_symmetric_merge(svn_client_symmetric_merge_t **merge,
+                                const char *source_path_or_url,
+                                const svn_opt_revision_t *source_revision,
+                                const char *target_wcpath,
+                                svn_boolean_t allow_mixed_rev,
+                                svn_boolean_t allow_local_mods,
+                                svn_boolean_t allow_switched_subtrees,
+                                svn_client_ctx_t *ctx,
+                                apr_pool_t *result_pool,
+                                apr_pool_t *scratch_pool);
+
+/* Find out what kind of symmetric merge would be needed, when the target
+ * is only known as a repository location rather than a WC.
+ *
+ * Like svn_client_find_symmetric_merge() except that SOURCE_PATH_OR_URL @
+ * SOURCE_REVISION should refer to a repository location and not a WC.
+ *
+ * ### The result, *MERGE_P, may not be suitable for passing to
+ * svn_client_do_symmetric_merge().  The target WC state would not be
+ * checked (as in the ALLOW_* flags).  We should resolve this problem:
+ * perhaps add the allow_* params here, or provide another way of setting
+ * them; and perhaps ensure __do_...() will accept the result iff given a
+ * WC that matches the stored target location.
+ */
+svn_error_t *
+svn_client_find_symmetric_merge_no_wc(
+                                 svn_client_symmetric_merge_t **merge_p,
+                                 const char *source_path_or_url,
+                                 const svn_opt_revision_t *source_revision,
+                                 const char *target_path_or_url,
+                                 const svn_opt_revision_t *target_revision,
+                                 svn_client_ctx_t *ctx,
+                                 apr_pool_t *result_pool,
+                                 apr_pool_t *scratch_pool);
+
+/* Perform a symmetric merge.
+ *
+ * Merge according to MERGE into the WC at TARGET_WCPATH.
+ *
+ * The other parameters are as in svn_client_merge4().
+ *
+ * ### TODO: There's little point in this function being the only way the
+ * caller can use the result of svn_client_find_symmetric_merge().  The
+ * contents of MERGE should be more public, or there should be other ways
+ * the caller can use it, or these two functions should be combined into
+ * one.  I want to make it more public, and also possibly have more ways
+ * to use it in future (for example, do_symmetric_merge_with_step_by_-
+ * step_confirmation).
+ */
+svn_error_t *
+svn_client_do_symmetric_merge(const svn_client_symmetric_merge_t *merge,
+                              const char *target_wcpath,
+                              svn_depth_t depth,
+                              svn_boolean_t force,
+                              svn_boolean_t record_only,
+                              svn_boolean_t dry_run,
+                              const apr_array_header_t *merge_options,
+                              svn_client_ctx_t *ctx,
+                              apr_pool_t *scratch_pool);
+
+/* Return TRUE iff the symmetric merge represented by MERGE is going to be
+ * a reintegrate-like merge: that is, merging in the opposite direction
+ * from the last full merge.
+ *
+ * This function exists because the merge is NOT really symmetric and the
+ * client can be more friendly if it knows something about the differences.
+ */
+svn_boolean_t
+svn_client_symmetric_merge_is_reintegrate_like(
+        const svn_client_symmetric_merge_t *merge);
+
+
 /** Merge changes from @a source1/@a revision1 to @a source2/@a revision2 into
  * the working-copy path @a target_wcpath.
  *

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1398597&r1=1398596&r2=1398597&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Tue Oct 16 01:08:26 2012
@@ -11401,7 +11401,7 @@ find_base_on_target(svn_client__pathrev_
   return SVN_NO_ERROR;
 }
 
-/* The body of svn_client__find_symmetric_merge(), which see.
+/* The body of svn_client_find_symmetric_merge(), which see.
  */
 static svn_error_t *
 find_symmetric_merge(svn_client__pathrev_t **base_p,
@@ -11482,15 +11482,15 @@ find_symmetric_merge(svn_client__pathrev
 }
 
 /* Details of a symmetric merge. */
-struct svn_client__symmetric_merge_t
+struct svn_client_symmetric_merge_t
 {
   svn_client__pathrev_t *yca, *base, *mid, *right, *target;
   svn_boolean_t allow_mixed_rev, allow_local_mods, allow_switched_subtrees;
 };
 
 svn_error_t *
-svn_client__find_symmetric_merge_no_wc(
-                                 svn_client__symmetric_merge_t **merge_p,
+svn_client_find_symmetric_merge_no_wc(
+                                 svn_client_symmetric_merge_t **merge_p,
                                  const char *source_path_or_url,
                                  const svn_opt_revision_t *source_revision,
                                  const char *target_path_or_url,
@@ -11501,7 +11501,7 @@ svn_client__find_symmetric_merge_no_wc(
 {
   source_and_target_t *s_t = apr_palloc(scratch_pool, sizeof(*s_t));
   svn_client__pathrev_t *target_loc;
-  svn_client__symmetric_merge_t *merge = apr_palloc(result_pool, sizeof(*merge));
+  svn_client_symmetric_merge_t *merge = apr_palloc(result_pool, sizeof(*merge));
 
   /* Source */
   SVN_ERR(svn_client__ra_session_from_path2(
@@ -11531,20 +11531,20 @@ svn_client__find_symmetric_merge_no_wc(
 }
 
 svn_error_t *
-svn_client__find_symmetric_merge(svn_client__symmetric_merge_t **merge_p,
-                                 const char *source_path_or_url,
-                                 const svn_opt_revision_t *source_revision,
-                                 const char *target_wcpath,
-                                 svn_boolean_t allow_mixed_rev,
-                                 svn_boolean_t allow_local_mods,
-                                 svn_boolean_t allow_switched_subtrees,
-                                 svn_client_ctx_t *ctx,
-                                 apr_pool_t *result_pool,
-                                 apr_pool_t *scratch_pool)
+svn_client_find_symmetric_merge(svn_client_symmetric_merge_t **merge_p,
+                                const char *source_path_or_url,
+                                const svn_opt_revision_t *source_revision,
+                                const char *target_wcpath,
+                                svn_boolean_t allow_mixed_rev,
+                                svn_boolean_t allow_local_mods,
+                                svn_boolean_t allow_switched_subtrees,
+                                svn_client_ctx_t *ctx,
+                                apr_pool_t *result_pool,
+                                apr_pool_t *scratch_pool)
 {
   const char *target_abspath;
   source_and_target_t *s_t = apr_palloc(result_pool, sizeof(*s_t));
-  svn_client__symmetric_merge_t *merge = apr_palloc(result_pool, sizeof(*merge));
+  svn_client_symmetric_merge_t *merge = apr_palloc(result_pool, sizeof(*merge));
 
   SVN_ERR(svn_dirent_get_absolute(&target_abspath, target_wcpath, scratch_pool));
 
@@ -11588,7 +11588,7 @@ svn_client__find_symmetric_merge(svn_cli
   return SVN_NO_ERROR;
 }
 
-/* The body of svn_client__do_symmetric_merge(), which see.
+/* The body of svn_client_do_symmetric_merge(), which see.
  *
  * Five locations are inputs: YCA, BASE, MID, RIGHT, TARGET, as shown
  * depending on whether the base is on the source branch or the target
@@ -11616,7 +11616,7 @@ svn_client__find_symmetric_merge(svn_cli
  * eliminate already-cherry-picked revisions from the source.
  */
 static svn_error_t *
-do_symmetric_merge_locked(const svn_client__symmetric_merge_t *merge,
+do_symmetric_merge_locked(const svn_client_symmetric_merge_t *merge,
                           const char *target_abspath,
                           svn_depth_t depth,
                           svn_boolean_t force,
@@ -11735,15 +11735,15 @@ do_symmetric_merge_locked(const svn_clie
 }
 
 svn_error_t *
-svn_client__do_symmetric_merge(const svn_client__symmetric_merge_t *merge,
-                               const char *target_wcpath,
-                               svn_depth_t depth,
-                               svn_boolean_t force,
-                               svn_boolean_t record_only,
-                               svn_boolean_t dry_run,
-                               const apr_array_header_t *merge_options,
-                               svn_client_ctx_t *ctx,
-                               apr_pool_t *pool)
+svn_client_do_symmetric_merge(const svn_client_symmetric_merge_t *merge,
+                              const char *target_wcpath,
+                              svn_depth_t depth,
+                              svn_boolean_t force,
+                              svn_boolean_t record_only,
+                              svn_boolean_t dry_run,
+                              const apr_array_header_t *merge_options,
+                              svn_client_ctx_t *ctx,
+                              apr_pool_t *pool)
 {
   const char *target_abspath, *lock_abspath;
 
@@ -11767,8 +11767,8 @@ svn_client__do_symmetric_merge(const svn
 }
 
 svn_boolean_t
-svn_client__symmetric_merge_is_reintegrate_like(
-        const svn_client__symmetric_merge_t *merge)
+svn_client_symmetric_merge_is_reintegrate_like(
+        const svn_client_symmetric_merge_t *merge)
 {
   return merge->mid != NULL;
 }
@@ -11779,7 +11779,7 @@ svn_client__symmetric_merge_get_location
                                 svn_client__pathrev_t **base,
                                 svn_client__pathrev_t **right,
                                 svn_client__pathrev_t **target,
-                                const svn_client__symmetric_merge_t *merge,
+                                const svn_client_symmetric_merge_t *merge,
                                 apr_pool_t *result_pool)
 {
   if (yca)

Modified: subversion/trunk/subversion/svn/merge-cmd.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/merge-cmd.c?rev=1398597&r1=1398596&r2=1398597&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/merge-cmd.c (original)
+++ subversion/trunk/subversion/svn/merge-cmd.c Tue Oct 16 01:08:26 2012
@@ -120,16 +120,16 @@ symmetric_merge(const char *source_path_
                 svn_client_ctx_t *ctx,
                 apr_pool_t *scratch_pool)
 {
-  svn_client__symmetric_merge_t *merge;
+  svn_client_symmetric_merge_t *merge;
 
   /* Find the 3-way merges needed (and check suitability of the WC). */
-  SVN_ERR(svn_client__find_symmetric_merge(&merge,
-                                           source_path_or_url, source_revision,
-                                           target_wcpath, allow_mixed_rev,
-                                           allow_local_mods, allow_switched_subtrees,
-                                           ctx, scratch_pool, scratch_pool));
+  SVN_ERR(svn_client_find_symmetric_merge(&merge,
+                                          source_path_or_url, source_revision,
+                                          target_wcpath, allow_mixed_rev,
+                                          allow_local_mods, allow_switched_subtrees,
+                                          ctx, scratch_pool, scratch_pool));
 
-  if (svn_client__symmetric_merge_is_reintegrate_like(merge))
+  if (svn_client_symmetric_merge_is_reintegrate_like(merge))
     {
       if (record_only)
         return svn_error_create(SVN_ERR_CL_MUTUALLY_EXCLUSIVE_ARGS, NULL,
@@ -157,10 +157,10 @@ symmetric_merge(const char *source_path_
     }
 
   /* Perform the 3-way merges */
-  SVN_ERR(svn_client__do_symmetric_merge(merge, target_wcpath, depth,
-                                         force, record_only,
-                                         dry_run, merge_options,
-                                         ctx, scratch_pool));
+  SVN_ERR(svn_client_do_symmetric_merge(merge, target_wcpath, depth,
+                                        force, record_only,
+                                        dry_run, merge_options,
+                                        ctx, scratch_pool));
 
   return SVN_NO_ERROR;
 }

Modified: subversion/trunk/subversion/svn/mergeinfo-cmd.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/mergeinfo-cmd.c?rev=1398597&r1=1398596&r2=1398597&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/mergeinfo-cmd.c (original)
+++ subversion/trunk/subversion/svn/mergeinfo-cmd.c Tue Oct 16 01:08:26 2012
@@ -205,7 +205,7 @@ mergeinfo_summary(
                   svn_client_ctx_t *ctx,
                   apr_pool_t *pool)
 {
-  svn_client__symmetric_merge_t *the_merge;
+  svn_client_symmetric_merge_t *the_merge;
   svn_client__pathrev_t *yca, *base, *right, *target;
   svn_boolean_t target_is_wc, reintegrate_like;
 
@@ -213,14 +213,14 @@ mergeinfo_summary(
                  && (target_revision->kind == svn_opt_revision_unspecified
                      || target_revision->kind == svn_opt_revision_working);
   if (target_is_wc)
-    SVN_ERR(svn_client__find_symmetric_merge(
+    SVN_ERR(svn_client_find_symmetric_merge(
               &the_merge,
               source_path_or_url, source_revision,
               target_path_or_url,
               TRUE, TRUE, TRUE,  /* allow_* */
               ctx, pool, pool));
   else
-    SVN_ERR(svn_client__find_symmetric_merge_no_wc(
+    SVN_ERR(svn_client_find_symmetric_merge_no_wc(
               &the_merge,
               source_path_or_url, source_revision,
               target_path_or_url, target_revision,
@@ -228,7 +228,7 @@ mergeinfo_summary(
 
   SVN_ERR(svn_client__symmetric_merge_get_locations(
             &yca, &base, &right, &target, the_merge, pool));
-  reintegrate_like = svn_client__symmetric_merge_is_reintegrate_like(the_merge);
+  reintegrate_like = svn_client_symmetric_merge_is_reintegrate_like(the_merge);
 
   SVN_ERR(mergeinfo_diagram(yca, base, right, target,
                             target_is_wc, reintegrate_like,



Re: renaming "symmetric merge"

Posted by Julian Foad <ju...@btopenworld.com>.
I (Julian Foad) wrote:

> Stefan Sperling wrote:
>>   Hey Julian, are you still planning to rename these APIs from "symmetric"
>>   to "automatic" merge? I think "automatic" is a much better term to use
>>   because it is somewhat easier to understand from the user's perspective.
>>   Especially for new users who will start using Subversion at 1.8 or later
>>   releases. The term "symmetric" only makes sense to people who understand
>>   why "svn merge" behaviour wasn't symmetric in 1.7 and earlier releases.
> 
> Great, thanks for the feedback.  In that case, I'll do it.

r1399738.

- Julian

Re: renaming "symmetric merge"

Posted by "C. Michael Pilato" <cm...@collab.net>.
On 10/16/2012 11:01 AM, Julian Foad wrote:
> C-M Pilato wrote: 
>> I'm voting for the likes of svn_client_skynet__find_merge(),
>> svn_client_skynet__do_merge(), ...  ;-)
> 
> Erm, I'm afraid the humour is lost on me.  Not sure what's going on in your head :-)

http://en.wikipedia.org/wiki/Skynet_%28Terminator%29


-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development


Re: renaming "symmetric merge"

Posted by Julian Foad <ju...@btopenworld.com>.
Stefan Sperling wrote:

>  Hey Julian, are you still planning to rename these APIs from "symmetric"
>  to "automatic" merge? I think "automatic" is a much better term to use
>  because it is somewhat easier to understand from the user's perspective.
>  Especially for new users who will start using Subversion at 1.8 or later
>  releases. The term "symmetric" only makes sense to people who understand
>  why "svn merge" behaviour wasn't symmetric in 1.7 and earlier releases.

Great, thanks for the feedback.  In that case, I'll do it.

C-M Pilato wrote: 
> I'm voting for the likes of svn_client_skynet__find_merge(),
> svn_client_skynet__do_merge(), ...  ;-)

Erm, I'm afraid the humour is lost on me.  Not sure what's going on in your head :-)

- Julian

Re: renaming "symmetric merge"

Posted by "C. Michael Pilato" <cm...@collab.net>.
On 10/16/2012 06:46 AM, Stefan Sperling wrote:
> On Tue, Oct 16, 2012 at 01:08:26AM -0000, julianfoad@apache.org wrote:
>> Author: julianfoad
>> Date: Tue Oct 16 01:08:26 2012
>> New Revision: 1398597
>>
>> URL: http://svn.apache.org/viewvc?rev=1398597&view=rev
>> Log:
>> Make the symmetric merge APIs public.
> 
> Hey Julian, are you still planning to rename these APIs from "symmetric"
> to "automatic" merge? I think "automatic" is a much better term to use
> because it is somewhat easier to understand from the user's perspective.
> Especially for new users who will start using Subversion at 1.8 or later
> releases. The term "symmetric" only makes sense to people who understand
> why "svn merge" behaviour wasn't symmetric in 1.7 and earlier releases.

I'm voting for the likes of svn_client_skynet__find_merge(),
svn_client_skynet__do_merge(), ...  ;-)

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development


renaming "symmetric merge" (was: Re: svn commit: r1398597 - in /subversion/trunk/subversion: include/private/svn_client_private.h include/svn_client.h libsvn_client/merge.c svn/merge-cmd.c svn/mergeinfo-cmd.c)

Posted by Stefan Sperling <st...@elego.de>.
On Tue, Oct 16, 2012 at 01:08:26AM -0000, julianfoad@apache.org wrote:
> Author: julianfoad
> Date: Tue Oct 16 01:08:26 2012
> New Revision: 1398597
> 
> URL: http://svn.apache.org/viewvc?rev=1398597&view=rev
> Log:
> Make the symmetric merge APIs public.

Hey Julian, are you still planning to rename these APIs from "symmetric"
to "automatic" merge? I think "automatic" is a much better term to use
because it is somewhat easier to understand from the user's perspective.
Especially for new users who will start using Subversion at 1.8 or later
releases. The term "symmetric" only makes sense to people who understand
why "svn merge" behaviour wasn't symmetric in 1.7 and earlier releases.