You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2011/07/22 16:52:47 UTC
svn commit: r1149626 - /subversion/trunk/subversion/libsvn_client/merge.c
Author: pburba
Date: Fri Jul 22 14:52:46 2011
New Revision: 1149626
URL: http://svn.apache.org/viewvc?rev=1149626&view=rev
Log:
Follow-up to r1149228: Add some comments describing the optimizations for
issue #3966 'log_noop_revs is far too slow'.
* subversion/libsvn_client/merge.c
(log_noop_revs, remove_noop_subtree_ranges): Document the requirement that
the svn_log_entry_receiver_t receiver must be invoked from oldest to
youngest revision.
Suggested by: gstein
Modified:
subversion/trunk/subversion/libsvn_client/merge.c
Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1149626&r1=1149625&r2=1149626&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Fri Jul 22 14:52:46 2011
@@ -7934,6 +7934,9 @@ rangelist_merge_revision(apr_array_heade
Use SCRATCH_POOL for temporary allocations. Allocate additions to
BATON->MERGED_RANGES and BATON->OPERATIVE_RANGES in BATON->POOL.
+
+ Note: This callback must be invoked from oldest LOG_ENTRY->REVISION
+ to youngest LOG_ENTRY->REVISION -- see rangelist_merge_revision().
*/
static svn_error_t *
log_noop_revs(void *baton,
@@ -8174,6 +8177,11 @@ remove_noop_subtree_ranges(const char *u
APR_ARRAY_PUSH(log_targets, const char *) = "";
+ /* Invoke the svn_log_entry_receiver_t receiver log_noop_revs() from
+ oldest to youngest. The receiver is optimized to add ranges to
+ log_gap_baton.merged_ranges and log_gap_baton.operative_ranges, but
+ requires that the revs arrive oldest to youngest -- see log_noop_revs()
+ and rangelist_merge_revision(). */
SVN_ERR(svn_ra_get_log2(ra_session, log_targets, oldest_gap_rev->start + 1,
youngest_gap_rev->end, 0, TRUE, TRUE, FALSE,
apr_array_make(scratch_pool, 0,