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 2011/10/26 12:53:21 UTC

svn commit: r1189124 - in /subversion/branches/showing-merge-info/subversion/libsvn_client: merge.c mergeinfo.c mergeinfo.h

Author: julianfoad
Date: Wed Oct 26 10:53:20 2011
New Revision: 1189124

URL: http://svn.apache.org/viewvc?rev=1189124&view=rev
Log:
On the 'showing-merge-info' branch: Make a function more widely available
within libsvn_client.

* subversion/libsvn_client/merge.c
  (adjust_deleted_subtree_ranges): Adjust calls.
  (rangelist_intersect_range): Move and rename to ...

* subversion/libsvn_client/mergeinfo.h,
  subversion/libsvn_client/mergeinfo.c
  (svn_client__rangelist_intersect_range): ... here.

Modified:
    subversion/branches/showing-merge-info/subversion/libsvn_client/merge.c
    subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.c
    subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.h

Modified: subversion/branches/showing-merge-info/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_client/merge.c?rev=1189124&r1=1189123&r2=1189124&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_client/merge.c Wed Oct 26 10:53:20 2011
@@ -2908,43 +2908,6 @@ notification_receiver(void *baton, const
     }
 }
 
-/* Set *OUT_RANGELIST to the intersection of IN_RANGELIST with the simple
- * (inheritable) revision range REV1:REV2, according to CONSIDER_INHERITANCE.
- * If REV1 is equal to REV2, the result is an empty rangelist, otherwise
- * REV1 must be less than REV2.
- *
- * Note: If CONSIDER_INHERITANCE is FALSE, the effect is to treat any non-
- * inheritable input ranges as if they were inheritable.  If it is TRUE, the
- * effect is to discard any non-inheritable input ranges.  Therefore the
- * ranges in *OUT_RANGELIST will always be inheritable. */
-static svn_error_t *
-rangelist_intersect_range(apr_array_header_t **out_rangelist,
-                          const apr_array_header_t *in_rangelist,
-                          svn_revnum_t rev1,
-                          svn_revnum_t rev2,
-                          svn_boolean_t consider_inheritance,
-                          apr_pool_t *result_pool,
-                          apr_pool_t *scratch_pool)
-{
-  SVN_ERR_ASSERT(rev1 <= rev2);
-
-  if (rev1 < rev2)
-    {
-      apr_array_header_t *simple_rangelist =
-        svn_rangelist__initialize(rev1, rev2, TRUE, scratch_pool);
-
-      SVN_ERR(svn_rangelist_intersect(out_rangelist,
-                                      simple_rangelist, in_rangelist,
-                                      consider_inheritance, result_pool));
-    }
-  else
-    {
-      *out_rangelist = apr_array_make(result_pool, 0,
-                                      sizeof(svn_merge_range_t *));
-    }
-  return SVN_NO_ERROR;
-}
-
 /* Helper for fix_deleted_subtree_ranges().  Like fix_deleted_subtree_ranges()
    this function should only be called when honoring mergeinfo.
 
@@ -3128,22 +3091,20 @@ adjust_deleted_subtree_ranges(svn_client
               /* Find the intersection of CHILD->REMAINING_RANGES with the
                  range over which PRIMARY_URL@older_rev exists (ending at
                  the youngest revision at which it still exists). */
-              SVN_ERR(rangelist_intersect_range(&child->remaining_ranges,
-                                                child->remaining_ranges,
-                                                older_rev,
-                                                rev_primary_url_deleted - 1,
-                                                FALSE,
-                                                scratch_pool, scratch_pool));
+              SVN_ERR(svn_client__rangelist_intersect_range(
+                        &child->remaining_ranges, child->remaining_ranges,
+                        older_rev, rev_primary_url_deleted - 1,
+                        FALSE /* consider_inheritance */,
+                        scratch_pool, scratch_pool));
 
               /* Merge into CHILD->REMANING_RANGES the intersection of
                  PARENT->REMAINING_RANGES with the range beginning when
                  PRIMARY_URL@older_rev was deleted until younger_rev. */
-              SVN_ERR(rangelist_intersect_range(&deleted_rangelist,
-                                                parent->remaining_ranges,
-                                                rev_primary_url_deleted - 1,
-                                                peg_rev,
-                                                FALSE,
-                                                scratch_pool, scratch_pool));
+              SVN_ERR(svn_client__rangelist_intersect_range(
+                        &deleted_rangelist, parent->remaining_ranges,
+                        rev_primary_url_deleted - 1, peg_rev,
+                        FALSE /* consider_inheritance */,
+                        scratch_pool, scratch_pool));
               SVN_ERR(svn_rangelist_merge2(child->remaining_ranges,
                                            deleted_rangelist, scratch_pool,
                                            scratch_pool));
@@ -3197,18 +3158,20 @@ adjust_deleted_subtree_ranges(svn_client
          exists.  Since segment doesn't span older_rev:peg_rev we know
          PRIMARY_URL@peg_rev didn't come into existence until
          segment->range_start + 1. */
-      SVN_ERR(rangelist_intersect_range(&child->remaining_ranges,
-                                        child->remaining_ranges,
-                                        segment->range_start, peg_rev,
-                                        FALSE, scratch_pool, scratch_pool));
+      SVN_ERR(svn_client__rangelist_intersect_range(
+                &child->remaining_ranges, child->remaining_ranges,
+                segment->range_start, peg_rev,
+                FALSE /* consider_inheritance */,
+                scratch_pool, scratch_pool));
 
       /* Merge into CHILD->REMANING_RANGES the intersection of
          PARENT->REMAINING_RANGES with the range before PRIMARY_URL@peg_rev
          came into existence. */
-      SVN_ERR(rangelist_intersect_range(&non_existent_rangelist,
-                                        parent->remaining_ranges,
-                                        older_rev, segment->range_start,
-                                        FALSE, scratch_pool, scratch_pool));
+      SVN_ERR(svn_client__rangelist_intersect_range(
+                &non_existent_rangelist, parent->remaining_ranges,
+                older_rev, segment->range_start,
+                FALSE /* consider_inheritance */,
+                scratch_pool, scratch_pool));
       SVN_ERR(svn_rangelist_merge2(child->remaining_ranges,
                                    non_existent_rangelist, scratch_pool,
                                    scratch_pool));

Modified: subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.c?rev=1189124&r1=1189123&r2=1189124&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.c Wed Oct 26 10:53:20 2011
@@ -42,6 +42,7 @@
 #include "private/svn_wc_private.h"
 #include "private/svn_ra_private.h"
 #include "private/svn_fspath.h"
+#include "private/svn_client_private.h"
 #include "client.h"
 #include "mergeinfo.h"
 #include "svn_private_config.h"
@@ -136,6 +137,34 @@ svn_client__record_wc_mergeinfo(const ch
   return SVN_NO_ERROR;
 }
 
+svn_error_t *
+svn_client__rangelist_intersect_range(apr_array_header_t **out_rangelist,
+                                      const apr_array_header_t *in_rangelist,
+                                      svn_revnum_t rev1,
+                                      svn_revnum_t rev2,
+                                      svn_boolean_t consider_inheritance,
+                                      apr_pool_t *result_pool,
+                                      apr_pool_t *scratch_pool)
+{
+  SVN_ERR_ASSERT(rev1 <= rev2);
+
+  if (rev1 < rev2)
+    {
+      apr_array_header_t *simple_rangelist =
+        svn_rangelist__initialize(rev1, rev2, TRUE, scratch_pool);
+
+      SVN_ERR(svn_rangelist_intersect(out_rangelist,
+                                      simple_rangelist, in_rangelist,
+                                      consider_inheritance, result_pool));
+    }
+  else
+    {
+      *out_rangelist = apr_array_make(result_pool, 0,
+                                      sizeof(svn_merge_range_t *));
+    }
+  return SVN_NO_ERROR;
+}
+
 /*-----------------------------------------------------------------------*/
 
 /*** Retrieving mergeinfo. ***/

Modified: subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.h?rev=1189124&r1=1189123&r2=1189124&view=diff
==============================================================================
--- subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.h (original)
+++ subversion/branches/showing-merge-info/subversion/libsvn_client/mergeinfo.h Wed Oct 26 10:53:20 2011
@@ -365,4 +365,22 @@ svn_client__mergeinfo_status(svn_boolean
                              const char *local_abspath,
                              apr_pool_t *scratch_pool);
 
+/* Set *OUT_RANGELIST to the intersection of IN_RANGELIST with the simple
+ * (inheritable) revision range REV1:REV2, according to CONSIDER_INHERITANCE.
+ * If REV1 is equal to REV2, the result is an empty rangelist, otherwise
+ * REV1 must be less than REV2.
+ *
+ * Note: If CONSIDER_INHERITANCE is FALSE, the effect is to treat any non-
+ * inheritable input ranges as if they were inheritable.  If it is TRUE, the
+ * effect is to discard any non-inheritable input ranges.  Therefore the
+ * ranges in *OUT_RANGELIST will always be inheritable. */
+svn_error_t *
+svn_client__rangelist_intersect_range(apr_array_header_t **out_rangelist,
+                                      const apr_array_header_t *in_rangelist,
+                                      svn_revnum_t rev1,
+                                      svn_revnum_t rev2,
+                                      svn_boolean_t consider_inheritance,
+                                      apr_pool_t *result_pool,
+                                      apr_pool_t *scratch_pool);
+
 #endif /* SVN_LIBSVN_CLIENT_MERGEINFO_H */