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 */