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)