Author: stsp
Date: Thu Apr 21 13:03:46 2016
New Revision: 1740298

URL: http://svn.apache.org/viewvc?rev=1740298&view=rev
Log:
Expose merge_locked() from libsvn_client/merge.c the rest of libsvn_client.

* subversion/libsvn_client/client.h
  (svn_client__conflict_report_t): Moved here from merge.c.
  (svn_client__make_merge_conflict_error,
   svn_client__merge_locked): Declare.
 
* subversion/libsvn_client/merge.c
  (conflict_report_t): Moved to client.h as svn_client__conflict_report_t.
  (make_merge_conflict_error, merge_locked): Rename to
    svn_client__make_merge_conflict_error and svn_client__merge_locked.
  (conflict_report_create, conflict_report_dup, do_merge,
   merge_cousins_and_supplement_mergeinfo,
   svn_client_merge5, merge_reintegrate_locked,
   merge_peg_locked, do_automatic_merge_locked,
   svn_client_merge_peg5): Track renames.

Modified:
    subversion/trunk/subversion/libsvn_client/client.h
    subversion/trunk/subversion/libsvn_client/merge.c

Modified: subversion/trunk/subversion/libsvn_client/client.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/client.h?rev=1740298&r1=1740297&r2=1740298&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/client.h (original)
+++ subversion/trunk/subversion/libsvn_client/client.h Thu Apr 21 13:03:46 2016
@@ -1227,6 +1227,46 @@ svn_client__merge_elements(svn_boolean_t
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool);
 
+/* Data for reporting when a merge aborted because of raising conflicts.
+ *
+ * ### TODO: More info, including the ranges (or other parameters) the user
+ *     needs to complete the merge.
+ */
+typedef struct svn_client__conflict_report_t
+{
+  const char *target_abspath;
+  /* The revision range during which conflicts were raised */
+  const merge_source_t *conflicted_range;
+  /* Was the conflicted range the last range in the whole requested merge? */
+  svn_boolean_t was_last_range;
+} svn_client__conflict_report_t;
+
+/* Create and return an error structure appropriate for the unmerged
+   revisions range(s). */
+svn_error_t *
+svn_client__make_merge_conflict_error(svn_client__conflict_report_t *report,
+                                      apr_pool_t *scratch_pool);
+
+/* The body of svn_client_merge5(), which see for details. */
+svn_error_t *
+svn_client__merge_locked(svn_client__conflict_report_t **conflict_report,
+                         const char *source1,
+                         const svn_opt_revision_t *revision1,
+                         const char *source2,
+                         const svn_opt_revision_t *revision2,
+                         const char *target_abspath,
+                         svn_depth_t depth,
+                         svn_boolean_t ignore_mergeinfo,
+                         svn_boolean_t diff_ignore_ancestry,
+                         svn_boolean_t force_delete,
+                         svn_boolean_t record_only,
+                         svn_boolean_t dry_run,
+                         svn_boolean_t allow_mixed_rev,
+                         const apr_array_header_t *merge_options,
+                         svn_client_ctx_t *ctx,
+                         apr_pool_t *result_pool,
+                         apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1740298&r1=1740297&r2=1740298&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Thu Apr 21 13:03:46 2016
@@ -5498,29 +5498,16 @@ single_range_conflict_report_create(cons
   return report;
 }
 
-/* Data for reporting when a merge aborted because of raising conflicts.
- *
- * ### TODO: More info, including the ranges (or other parameters) the user
- *     needs to complete the merge.
- */
-typedef struct conflict_report_t
-{
-  const char *target_abspath;
-  /* The revision range during which conflicts were raised */
-  const merge_source_t *conflicted_range;
-  /* Was the conflicted range the last range in the whole requested merge? */
-  svn_boolean_t was_last_range;
-} conflict_report_t;
-
-/* Return a new conflict_report_t containing deep copies of the parameters,
- * allocated in RESULT_POOL. */
-static conflict_report_t *
+/* Return a new svn_client__conflict_report_t containing deep copies of the
+ * parameters, allocated in RESULT_POOL. */
+static svn_client__conflict_report_t *
 conflict_report_create(const char *target_abspath,
                        const merge_source_t *conflicted_range,
                        svn_boolean_t was_last_range,
                        apr_pool_t *result_pool)
 {
-  conflict_report_t *report = apr_palloc(result_pool, sizeof(*report));
+  svn_client__conflict_report_t *report = apr_palloc(result_pool,
+                                                     sizeof(*report));
 
   report->target_abspath = apr_pstrdup(result_pool, target_abspath);
   report->conflicted_range = merge_source_dup(conflicted_range, result_pool);
@@ -5529,11 +5516,12 @@ conflict_report_create(const char *targe
 }
 
 /* Return a deep copy of REPORT, allocated in RESULT_POOL. */
-static conflict_report_t *
-conflict_report_dup(const conflict_report_t *report,
+static svn_client__conflict_report_t *
+conflict_report_dup(const svn_client__conflict_report_t *report,
                     apr_pool_t *result_pool)
 {
-  conflict_report_t *new = apr_pmemdup(result_pool, report, sizeof(*new));
+  svn_client__conflict_report_t *new = apr_pmemdup(result_pool, report,
+                                                   sizeof(*new));
 
   new->target_abspath = apr_pstrdup(result_pool, report->target_abspath);
   new->conflicted_range = merge_source_dup(report->conflicted_range,
@@ -5541,11 +5529,9 @@ conflict_report_dup(const conflict_repor
   return new;
 }
 
-/* Create and return an error structure appropriate for the unmerged
-   revisions range(s). */
-static APR_INLINE svn_error_t *
-make_merge_conflict_error(conflict_report_t *report,
-                          apr_pool_t *scratch_pool)
+svn_error_t *
+svn_client__make_merge_conflict_error(svn_client__conflict_report_t *report,
+                                      apr_pool_t *scratch_pool)
 {
   assert(!report || svn_dirent_is_absolute(report->target_abspath));
 
@@ -9779,7 +9765,7 @@ ensure_ra_session_url(svn_ra_session_t *
 static svn_error_t *
 do_merge(apr_hash_t **modified_subtrees,
          svn_mergeinfo_catalog_t result_catalog,
-         conflict_report_t **conflict_report,
+         svn_client__conflict_report_t **conflict_report,
          svn_boolean_t *use_sleep,
          const apr_array_header_t *merge_sources,
          const merge_target_t *target,
@@ -10102,23 +10088,24 @@ do_merge(apr_hash_t **modified_subtrees,
    SCRATCH_POOL is used for all temporary allocations.
  */
 static svn_error_t *
-merge_cousins_and_supplement_mergeinfo(conflict_report_t **conflict_report,
-                                       svn_boolean_t *use_sleep,
-                                       const merge_target_t *target,
-                                       svn_ra_session_t *URL1_ra_session,
-                                       svn_ra_session_t *URL2_ra_session,
-                                       const merge_source_t *source,
-                                       const svn_client__pathrev_t *yca,
-                                       svn_boolean_t same_repos,
-                                       svn_depth_t depth,
-                                       svn_boolean_t diff_ignore_ancestry,
-                                       svn_boolean_t force_delete,
-                                       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 *result_pool,
-                                       apr_pool_t *scratch_pool)
+merge_cousins_and_supplement_mergeinfo(
+  svn_client__conflict_report_t **conflict_report,
+  svn_boolean_t *use_sleep,
+  const merge_target_t *target,
+  svn_ra_session_t *URL1_ra_session,
+  svn_ra_session_t *URL2_ra_session,
+  const merge_source_t *source,
+  const svn_client__pathrev_t *yca,
+  svn_boolean_t same_repos,
+  svn_depth_t depth,
+  svn_boolean_t diff_ignore_ancestry,
+  svn_boolean_t force_delete,
+  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 *result_pool,
+  apr_pool_t *scratch_pool)
 {
   apr_array_header_t *remove_sources, *add_sources;
   apr_hash_t *modified_subtrees = NULL;
@@ -10442,24 +10429,24 @@ open_target_wc(merge_target_t **target_p
  *
  * IGNORE_MERGEINFO and DIFF_IGNORE_ANCESTRY are as in do_merge().
  */
-static svn_error_t *
-merge_locked(conflict_report_t **conflict_report,
-             const char *source1,
-             const svn_opt_revision_t *revision1,
-             const char *source2,
-             const svn_opt_revision_t *revision2,
-             const char *target_abspath,
-             svn_depth_t depth,
-             svn_boolean_t ignore_mergeinfo,
-             svn_boolean_t diff_ignore_ancestry,
-             svn_boolean_t force_delete,
-             svn_boolean_t record_only,
-             svn_boolean_t dry_run,
-             svn_boolean_t allow_mixed_rev,
-             const apr_array_header_t *merge_options,
-             svn_client_ctx_t *ctx,
-             apr_pool_t *result_pool,
-             apr_pool_t *scratch_pool)
+svn_error_t *
+svn_client__merge_locked(svn_client__conflict_report_t **conflict_report,
+                         const char *source1,
+                         const svn_opt_revision_t *revision1,
+                         const char *source2,
+                         const svn_opt_revision_t *revision2,
+                         const char *target_abspath,
+                         svn_depth_t depth,
+                         svn_boolean_t ignore_mergeinfo,
+                         svn_boolean_t diff_ignore_ancestry,
+                         svn_boolean_t force_delete,
+                         svn_boolean_t record_only,
+                         svn_boolean_t dry_run,
+                         svn_boolean_t allow_mixed_rev,
+                         const apr_array_header_t *merge_options,
+                         svn_client_ctx_t *ctx,
+                         apr_pool_t *result_pool,
+                         apr_pool_t *scratch_pool)
 {
   merge_target_t *target;
   svn_client__pathrev_t *source1_loc, *source2_loc;
@@ -10656,7 +10643,7 @@ svn_client_merge5(const char *source1,
                   apr_pool_t *pool)
 {
   const char *target_abspath, *lock_abspath;
-  conflict_report_t *conflict_report;
+  svn_client__conflict_report_t *conflict_report;
 
   /* Sanity check our input -- we require specified revisions,
    * and either 2 paths or 2 URLs. */
@@ -10679,22 +10666,23 @@ svn_client_merge5(const char *source1,
 
   if (!dry_run)
     SVN_WC__CALL_WITH_WRITE_LOCK(
-      merge_locked(&conflict_report,
-                   source1, revision1, source2, revision2,
-                   target_abspath, depth, ignore_mergeinfo,
-                   diff_ignore_ancestry,
-                   force_delete, record_only, dry_run,
-                   allow_mixed_rev, merge_options, ctx, pool, pool),
+      svn_client__merge_locked(&conflict_report,
+                               source1, revision1, source2, revision2,
+                               target_abspath, depth, ignore_mergeinfo,
+                               diff_ignore_ancestry,
+                               force_delete, record_only, dry_run,
+                               allow_mixed_rev, merge_options, ctx, pool, 
pool),
       ctx->wc_ctx, lock_abspath, FALSE /* lock_anchor */, pool);
   else
-    SVN_ERR(merge_locked(&conflict_report,
-                   source1, revision1, source2, revision2,
-                   target_abspath, depth, ignore_mergeinfo,
-                   diff_ignore_ancestry,
-                   force_delete, record_only, dry_run,
-                   allow_mixed_rev, merge_options, ctx, pool, pool));
+    SVN_ERR(svn_client__merge_locked(&conflict_report,
+                                     source1, revision1, source2, revision2,
+                                     target_abspath, depth, ignore_mergeinfo,
+                                     diff_ignore_ancestry,
+                                     force_delete, record_only, dry_run,
+                                     allow_mixed_rev, merge_options, ctx, pool,
+                                     pool));
 
-  SVN_ERR(make_merge_conflict_error(conflict_report, pool));
+  SVN_ERR(svn_client__make_merge_conflict_error(conflict_report, pool));
   return SVN_NO_ERROR;
 }
 
@@ -11713,7 +11701,7 @@ open_reintegrate_source_and_target(svn_r
 
 /* The body of svn_client_merge_reintegrate(), which see for details. */
 static svn_error_t *
-merge_reintegrate_locked(conflict_report_t **conflict_report,
+merge_reintegrate_locked(svn_client__conflict_report_t **conflict_report,
                          const char *source_path_or_url,
                          const svn_opt_revision_t *source_peg_revision,
                          const char *target_abspath,
@@ -11788,7 +11776,7 @@ svn_client_merge_reintegrate(const char
                              apr_pool_t *pool)
 {
   const char *target_abspath, *lock_abspath;
-  conflict_report_t *conflict_report;
+  svn_client__conflict_report_t *conflict_report;
 
   SVN_ERR(get_target_and_lock_abspath(&target_abspath, &lock_abspath,
                                       target_wcpath, ctx, pool));
@@ -11808,7 +11796,7 @@ svn_client_merge_reintegrate(const char
                                      FALSE /*diff_ignore_ancestry*/,
                                      dry_run, merge_options, ctx, pool, pool));
 
-  SVN_ERR(make_merge_conflict_error(conflict_report, pool));
+  SVN_ERR(svn_client__make_merge_conflict_error(conflict_report, pool));
   return SVN_NO_ERROR;
 }
 
@@ -11818,7 +11806,7 @@ svn_client_merge_reintegrate(const char
  * IGNORE_MERGEINFO and DIFF_IGNORE_ANCESTRY are as in do_merge().
  */
 static svn_error_t *
-merge_peg_locked(conflict_report_t **conflict_report,
+merge_peg_locked(svn_client__conflict_report_t **conflict_report,
                  const char *source_path_or_url,
                  const svn_opt_revision_t *source_peg_revision,
                  const svn_rangelist_t *ranges_to_merge,
@@ -11923,7 +11911,7 @@ client_find_automatic_merge(automatic_me
                             apr_pool_t *scratch_pool);
 
 static svn_error_t *
-do_automatic_merge_locked(conflict_report_t **conflict_report,
+do_automatic_merge_locked(svn_client__conflict_report_t **conflict_report,
                           const automatic_merge_t *merge,
                           const char *target_abspath,
                           svn_depth_t depth,
@@ -11953,7 +11941,7 @@ svn_client_merge_peg5(const char *source
                       apr_pool_t *pool)
 {
   const char *target_abspath, *lock_abspath;
-  conflict_report_t *conflict_report;
+  svn_client__conflict_report_t *conflict_report;
 
   /* No ranges to merge?  No problem. */
   if (ranges_to_merge != NULL && ranges_to_merge->nelts == 0)
@@ -12018,7 +12006,7 @@ svn_client_merge_peg5(const char *source
                        force_delete, record_only, dry_run,
                        allow_mixed_rev, merge_options, ctx, pool, pool));
 
-  SVN_ERR(make_merge_conflict_error(conflict_report, pool));
+  SVN_ERR(svn_client__make_merge_conflict_error(conflict_report, pool));
   return SVN_NO_ERROR;
 }
 
@@ -12698,7 +12686,7 @@ client_find_automatic_merge(automatic_me
  * eliminate already-cherry-picked revisions from the source.
  */
 static svn_error_t *
-do_automatic_merge_locked(conflict_report_t **conflict_report,
+do_automatic_merge_locked(svn_client__conflict_report_t **conflict_report,
                           const automatic_merge_t *merge,
                           const char *target_abspath,
                           svn_depth_t depth,


Reply via email to