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/11/10 17:55:17 UTC
svn commit: r1200424 - in /subversion/trunk/subversion:
include/private/svn_opt_private.h libsvn_client/deprecated.c
libsvn_client/merge.c libsvn_client/mergeinfo.c libsvn_subr/opt.c svn/main.c
Author: julianfoad
Date: Thu Nov 10 16:55:16 2011
New Revision: 1200424
URL: http://svn.apache.org/viewvc?rev=1200424&view=rev
Log:
Provide constructor functions for svn_opt_revision_range_t to simplify
usage.
* subversion/include/private/svn_opt_private.h
subversion/libsvn_subr/opt.c
(svn_opt__revision_range_create, svn_opt__revision_range_from_revnums):
New functions.
* subversion/libsvn_client/deprecated.c
(svn_client_log4, svn_client_merge_peg2): Use them.
* subversion/libsvn_client/merge.c
(merge_cousins_and_supplement_mergeinfo, merge_locked): Use them.
* subversion/libsvn_client/mergeinfo.c
(logs_for_mergeinfo_rangelist): Use them.
* subversion/svn/main.c
(main): Use them.
Modified:
subversion/trunk/subversion/include/private/svn_opt_private.h
subversion/trunk/subversion/libsvn_client/deprecated.c
subversion/trunk/subversion/libsvn_client/merge.c
subversion/trunk/subversion/libsvn_client/mergeinfo.c
subversion/trunk/subversion/libsvn_subr/opt.c
subversion/trunk/subversion/svn/main.c
Modified: subversion/trunk/subversion/include/private/svn_opt_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_opt_private.h?rev=1200424&r1=1200423&r2=1200424&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_opt_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_opt_private.h Thu Nov 10 16:55:16 2011
@@ -129,6 +129,26 @@ const char *
svn_opt__revision_to_string(const svn_opt_revision_t *revision,
apr_pool_t *result_pool);
+/**
+ * Create a revision range structure from two revisions. Return a new range
+ * allocated in @a result_pool with the start and end initialized to
+ * (deep copies of) @a *start_revision and @a *end_revision.
+ */
+svn_opt_revision_range_t *
+svn_opt__revision_range_create(const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ apr_pool_t *result_pool);
+
+/**
+ * Create a revision range structure from two revnums. Return a new range
+ * allocated in @a result_pool with the start and end kinds initialized to
+ * #svn_opt_revision_number and values @a start_revnum and @a end_revnum.
+ */
+svn_opt_revision_range_t *
+svn_opt__revision_range_from_revnums(svn_revnum_t start_revnum,
+ svn_revnum_t end_revnum,
+ apr_pool_t *result_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/trunk/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/deprecated.c?rev=1200424&r1=1200423&r2=1200424&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_client/deprecated.c Thu Nov 10 16:55:16 2011
@@ -44,6 +44,7 @@
#include "client.h"
#include "mergeinfo.h"
+#include "private/svn_opt_private.h"
#include "private/svn_wc_private.h"
#include "svn_private_config.h"
@@ -1362,16 +1363,11 @@ svn_client_log4(const apr_array_header_t
apr_pool_t *pool)
{
apr_array_header_t *revision_ranges;
- svn_opt_revision_range_t *range;
-
- range = apr_palloc(pool, sizeof(svn_opt_revision_range_t));
- range->start = *start;
- range->end = *end;
revision_ranges = apr_array_make(pool, 1,
sizeof(svn_opt_revision_range_t *));
-
- APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *) = range;
+ APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_create(start, end, pool);
return svn_client_log5(targets, peg_revision, revision_ranges, limit,
discover_changed_paths, strict_node_history,
@@ -1577,13 +1573,11 @@ svn_client_merge_peg2(const char *source
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- svn_opt_revision_range_t range;
apr_array_header_t *ranges_to_merge =
apr_array_make(pool, 1, sizeof(svn_opt_revision_range_t *));
- range.start = *revision1;
- range.end = *revision2;
- APR_ARRAY_PUSH(ranges_to_merge, svn_opt_revision_range_t *) = ⦥
+ APR_ARRAY_PUSH(ranges_to_merge, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_create(revision1, revision2, pool);
return svn_client_merge_peg3(source, ranges_to_merge,
peg_revision,
target_wcpath,
Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1200424&r1=1200423&r2=1200424&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Thu Nov 10 16:55:16 2011
@@ -52,6 +52,7 @@
#include "client.h"
#include "mergeinfo.h"
+#include "private/svn_opt_private.h"
#include "private/svn_wc_private.h"
#include "private/svn_mergeinfo_private.h"
#include "private/svn_fspath.h"
@@ -9059,7 +9060,6 @@ merge_cousins_and_supplement_mergeinfo(c
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
- svn_opt_revision_range_t *range;
apr_array_header_t *remove_sources, *add_sources, *ranges;
svn_opt_revision_t peg_revision;
svn_boolean_t same_repos;
@@ -9078,28 +9078,20 @@ merge_cousins_and_supplement_mergeinfo(c
peg_revision.kind = svn_opt_revision_number;
- range = apr_pcalloc(scratch_pool, sizeof(*range));
- range->start.kind = svn_opt_revision_number;
- range->start.value.number = rev1;
- range->end.kind = svn_opt_revision_number;
- range->end.value.number = yc_rev;
ranges = apr_array_make(scratch_pool, 2,
sizeof(svn_opt_revision_range_t *));
- APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *) = range;
+ APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_from_revnums(rev1, yc_rev, scratch_pool);
peg_revision.value.number = rev1;
SVN_ERR(normalize_merge_sources(&remove_sources, URL1, URL1,
source_repos_root->url, &peg_revision,
ranges, URL1_ra_session, ctx, scratch_pool,
subpool));
- range = apr_pcalloc(scratch_pool, sizeof(*range));
- range->start.kind = svn_opt_revision_number;
- range->start.value.number = yc_rev;
- range->end.kind = svn_opt_revision_number;
- range->end.value.number = rev2;
ranges = apr_array_make(scratch_pool, 2,
sizeof(svn_opt_revision_range_t *));
- APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *) = range;
+ APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_from_revnums(yc_rev, rev2, scratch_pool);
peg_revision.value.number = rev2;
SVN_ERR(normalize_merge_sources(&add_sources, URL2, URL2,
source_repos_root->url, &peg_revision,
@@ -9466,7 +9458,6 @@ merge_locked(const char *source1,
if (yc_path && SVN_IS_VALID_REVNUM(yc_rev))
{
apr_array_header_t *ranges;
- svn_opt_revision_range_t *range;
svn_opt_revision_t peg_revision;
peg_revision.kind = svn_opt_revision_number;
@@ -9482,14 +9473,10 @@ merge_locked(const char *source1,
if ((strcmp(yc_path, URL2) == 0) && (yc_rev == rev2))
{
ancestral = TRUE;
- range = apr_pcalloc(scratch_pool, sizeof(*range));
- range->start.kind = svn_opt_revision_number;
- range->start.value.number = rev1;
- range->end.kind = svn_opt_revision_number;
- range->end.value.number = yc_rev;
ranges = apr_array_make(scratch_pool,
2, sizeof(svn_opt_revision_range_t *));
- APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *) = range;
+ APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_from_revnums(rev1, yc_rev, scratch_pool);
peg_revision.value.number = rev1;
SVN_ERR(normalize_merge_sources(&merge_sources, URL1, URL1,
source_repos_root.url, &peg_revision,
@@ -9501,14 +9488,10 @@ merge_locked(const char *source1,
else if ((strcmp(yc_path, URL1) == 0) && (yc_rev == rev1))
{
ancestral = TRUE;
- range = apr_pcalloc(scratch_pool, sizeof(*range));
- range->start.kind = svn_opt_revision_number;
- range->start.value.number = yc_rev;
- range->end.kind = svn_opt_revision_number;
- range->end.value.number = rev2;
ranges = apr_array_make(scratch_pool,
2, sizeof(svn_opt_revision_range_t *));
- APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *) = range;
+ APR_ARRAY_PUSH(ranges, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_from_revnums(yc_rev, rev2, scratch_pool);
peg_revision.value.number = rev2;
SVN_ERR(normalize_merge_sources(&merge_sources, URL2, URL2,
source_repos_root.url, &peg_revision,
Modified: subversion/trunk/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/mergeinfo.c?rev=1200424&r1=1200423&r2=1200424&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_client/mergeinfo.c Thu Nov 10 16:55:16 2011
@@ -38,6 +38,7 @@
#include "svn_client.h"
#include "svn_hash.h"
+#include "private/svn_opt_private.h"
#include "private/svn_mergeinfo_private.h"
#include "private/svn_wc_private.h"
#include "private/svn_ra_private.h"
@@ -1525,7 +1526,6 @@ logs_for_mergeinfo_rangelist(const char
svn_merge_range_t *oldest_range, *youngest_range;
apr_array_header_t *revision_ranges;
svn_opt_revision_t oldest_rev, youngest_rev;
- svn_opt_revision_range_t *range;
struct filter_log_entry_baton_t fleb;
if (! rangelist->nelts)
@@ -1574,10 +1574,8 @@ logs_for_mergeinfo_rangelist(const char
/* Drive the log. */
revision_ranges = apr_array_make(scratch_pool, 1,
sizeof(svn_opt_revision_range_t *));
- range = apr_pcalloc(scratch_pool, sizeof(*range));
- range->end = youngest_rev;
- range->start = oldest_rev;
- APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *) = range;
+ APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *)
+ = svn_opt__revision_range_create(&youngest_rev, &oldest_rev, scratch_pool);
SVN_ERR(svn_client_log5(target, &youngest_rev, revision_ranges,
0, discover_changed_paths, FALSE, FALSE, revprops,
filter_log_entry_with_rangelist, &fleb, ctx,
Modified: subversion/trunk/subversion/libsvn_subr/opt.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/opt.c?rev=1200424&r1=1200423&r2=1200424&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/opt.c (original)
+++ subversion/trunk/subversion/libsvn_subr/opt.c Thu Nov 10 16:55:16 2011
@@ -644,6 +644,32 @@ svn_opt__revision_to_string(const svn_op
}
}
+svn_opt_revision_range_t *
+svn_opt__revision_range_create(const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ apr_pool_t *result_pool)
+{
+ svn_opt_revision_range_t *range = apr_palloc(result_pool, sizeof(*range));
+
+ range->start = *start_revision;
+ range->end = *end_revision;
+ return range;
+}
+
+svn_opt_revision_range_t *
+svn_opt__revision_range_from_revnums(svn_revnum_t start_revnum,
+ svn_revnum_t end_revnum,
+ apr_pool_t *result_pool)
+{
+ svn_opt_revision_range_t *range = apr_palloc(result_pool, sizeof(*range));
+
+ range->start.kind = svn_opt_revision_number;
+ range->start.value.number = start_revnum;
+ range->end.kind = svn_opt_revision_number;
+ range->end.value.number = end_revnum;
+ return range;
+}
+
/*** Parsing arguments. ***/
Modified: subversion/trunk/subversion/svn/main.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/main.c?rev=1200424&r1=1200423&r2=1200424&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/main.c (original)
+++ subversion/trunk/subversion/svn/main.c Thu Nov 10 16:55:16 2011
@@ -54,6 +54,7 @@
#include "svn_version.h"
#include "cl.h"
+#include "private/svn_opt_private.h"
#include "private/svn_wc_private.h"
#include "private/svn_cmdline_private.h"
@@ -1628,7 +1629,6 @@ main(int argc, const char *argv[])
{
char *end;
svn_revnum_t changeno, changeno_end;
- svn_opt_revision_range_t *range;
const char *change_str =
APR_ARRAY_IDX(change_revs, i, const char *);
const char *s = change_str;
@@ -1700,15 +1700,11 @@ main(int argc, const char *argv[])
changeno_end = changeno - 1;
}
- range = apr_palloc(pool, sizeof(*range));
- range->start.value.number = changeno;
- range->end.value.number = changeno_end;
-
opt_state.used_change_arg = TRUE;
- range->start.kind = svn_opt_revision_number;
- range->end.kind = svn_opt_revision_number;
APR_ARRAY_PUSH(opt_state.revision_ranges,
- svn_opt_revision_range_t *) = range;
+ svn_opt_revision_range_t *)
+ = svn_opt__revision_range_from_revnums(changeno, changeno_end,
+ pool);
}
}
break;