[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r31929 - trunk/subversion/libsvn_client

From: Karl Fogel <kfogel_at_red-bean.com>
Date: Mon, 30 Jun 2008 16:24:56 -0400

cmpilato_at_tigris.org writes:
> Log:
> Add a missing docstring for a helper function.
>
> * subversion/libsvn_client/mergeinfo.c
> (location_from_path_and_rev): Add docstring.
>
> Suggested by: kfogel

Thank you!

But, there's a lot more to this diff than just the new doc string. Did
you commit some other work prematurely?

-K

> Modified:
> trunk/subversion/libsvn_client/merge.c
> trunk/subversion/libsvn_client/mergeinfo.c
>
> Modified: trunk/subversion/libsvn_client/merge.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/merge.c?pathrev=31929&r1=31928&r2=31929
> ==============================================================================
> --- trunk/subversion/libsvn_client/merge.c Mon Jun 30 09:18:20 2008 (r31928)
> +++ trunk/subversion/libsvn_client/merge.c Mon Jun 30 09:50:12 2008 (r31929)
> @@ -3920,6 +3920,7 @@ remove_noop_merge_ranges(apr_array_heade
> int i;
> svn_revnum_t oldest_rev = SVN_INVALID_REVNUM;
> svn_revnum_t youngest_rev = SVN_INVALID_REVNUM;
> + svn_revnum_t oldest_changed_rev, youngest_changed_rev;
> apr_array_header_t *changed_revs =
> apr_array_make(pool, ranges->nelts, sizeof(svn_revnum_t *));
> apr_array_header_t *operative_ranges =
> @@ -3948,20 +3949,36 @@ remove_noop_merge_ranges(apr_array_heade
> apr_array_make(pool, 0, sizeof(const char *)),
> log_changed_revs, changed_revs, pool));
>
> + /* Our list of changed revisions should be in youngest-to-oldest order. */
> + youngest_changed_rev = *(APR_ARRAY_IDX(changed_revs,
> + 0, svn_revnum_t *));
> + oldest_changed_rev = *(APR_ARRAY_IDX(changed_revs,
> + changed_revs->nelts - 1,
> + svn_revnum_t *));
> +
> /* Now, copy from RANGES to *OPERATIVE_RANGES, filtering out ranges
> that aren't operative (by virtue of not having any revisions
> represented in the CHANGED_REVS array). */
> for (i = 0; i < ranges->nelts; i++)
> {
> svn_merge_range_t *range = APR_ARRAY_IDX(ranges, i, svn_merge_range_t *);
> + svn_revnum_t range_min = MIN(range->start, range->end) + 1;
> + svn_revnum_t range_max = MAX(range->start, range->end);
> int j;
>
> + /* If the merge range is entirely outside the range of changed
> + revisions, we've no use for it. */
> + if ((range_min > youngest_changed_rev)
> + || (range_max < oldest_changed_rev))
> + continue;
> +
> + /* Walk through the changed_revs to see if any of them fall
> + inside our current range. */
> for (j = 0; j < changed_revs->nelts; j++)
> {
> svn_revnum_t *changed_rev =
> APR_ARRAY_IDX(changed_revs, j, svn_revnum_t *);
> - if ((*changed_rev > MIN(range->start, range->end))
> - && (*changed_rev <= MAX(range->start, range->end)))
> + if ((*changed_rev >= range_min) && (*changed_rev <= range_max))
> {
> APR_ARRAY_PUSH(operative_ranges, svn_merge_range_t *) = range;
> break;
>
> Modified: trunk/subversion/libsvn_client/mergeinfo.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_client/mergeinfo.c?pathrev=31929&r1=31928&r2=31929
> ==============================================================================
> --- trunk/subversion/libsvn_client/mergeinfo.c Mon Jun 30 09:18:20 2008 (r31928)
> +++ trunk/subversion/libsvn_client/mergeinfo.c Mon Jun 30 09:50:12 2008 (r31929)
> @@ -1118,6 +1118,24 @@ logs_for_mergeinfo_rangelist(const char
> return SVN_NO_ERROR;
> }
>
> +
> +/* Set URL and REVISION to the url and revision (of kind
> + svn_opt_revision_number) which is associated with PATH_OR_URL at
> + PEG_REVISION. Use POOL for allocations.
> +
> + Implementation Note: sometimes this information can be found
> + locally via the information in the 'entries' files, such as when
> + PATH_OR_URL is a working copy path and PEG_REVISION is of kind
> + svn_opt_revision_base. At other times, this function needs to
> + contact the repository, resolving revision keywords into real
> + revision numbers and tracing node history to find the correct
> + location.
> +
> + ### Can this be used elsewhere? I was *sure* I'd find this same
> + ### functionality elsewhere before writing this helper, but I
> + ### didn't. Seems like an operation that we'd be likely to do
> + ### often, though. -- cmpilato
> +*/
> static svn_error_t *
> location_from_path_and_rev(const char **url,
> svn_opt_revision_t **revision,
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svn-unsubscribe_at_subversion.tigris.org
> For additional commands, e-mail: svn-help_at_subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-06-30 22:25:53 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.