You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2016/02/22 16:29:39 UTC
svn commit: r1731661 - /subversion/trunk/subversion/svnserve/serve.c
Author: stefan2
Date: Mon Feb 22 15:29:38 2016
New Revision: 1731661
URL: http://svn.apache.org/viewvc?rev=1731661&view=rev
Log:
Minor tuning of svnserve's log processing.
* subversion/svnserve/serve.c
(revision_receiver): Skip revprop filtering when we don't need it -
which is like 99% of the time.
Modified:
subversion/trunk/subversion/svnserve/serve.c
Modified: subversion/trunk/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/serve.c?rev=1731661&r1=1731660&r2=1731661&view=diff
==============================================================================
--- subversion/trunk/subversion/svnserve/serve.c (original)
+++ subversion/trunk/subversion/svnserve/serve.c Mon Feb 22 15:29:38 2016
@@ -2262,11 +2262,22 @@ revision_receiver(void *baton,
svn_compat_log_revprops_out_string(&author, &date, &message,
log_entry->revprops);
- svn_compat_log_revprops_clear(log_entry->revprops);
- if (log_entry->revprops)
- revprop_count = apr_hash_count(log_entry->revprops);
+
+ /* Revprops list filtering is somewhat expensive.
+ Avoid doing that for the 90% case where only the standard revprops
+ have been requested and delivered. */
+ if (author && date && message && apr_hash_count(log_entry->revprops) == 3)
+ {
+ revprop_count = 0;
+ }
else
- revprop_count = 0;
+ {
+ svn_compat_log_revprops_clear(log_entry->revprops);
+ if (log_entry->revprops)
+ revprop_count = apr_hash_count(log_entry->revprops);
+ else
+ revprop_count = 0;
+ }
/* Open lists once: LOG_ENTRY and LOG_ENTRY->CHANGED_PATHS. */
if (!b->started)