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 2015/10/11 18:31:30 UTC

svn commit: r1707996 - /subversion/trunk/subversion/libsvn_repos/log.c

Author: stefan2
Date: Sun Oct 11 16:31:30 2015
New Revision: 1707996

URL: http://svn.apache.org/viewvc?rev=1707996&view=rev
Log:
Speed up revprop access in svn_repos_get_logs4 by using the latest FS API.

* subversion/libsvn_repos/log.c
  (fill_log_entry): Read revprops from the FS cache if we can. 
  (svn_repos_get_logs4): Refresh the revprops only once, at the start of
                         the operation.  This is the only public function
                         that, indirectly, calls the above.  Therefore, we
                         still fulfill the visibility guarantees for
                         revprop changes.

Modified:
    subversion/trunk/subversion/libsvn_repos/log.c

Modified: subversion/trunk/subversion/libsvn_repos/log.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/log.c?rev=1707996&r1=1707995&r2=1707996&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/log.c (original)
+++ subversion/trunk/subversion/libsvn_repos/log.c Sun Oct 11 16:31:30 2015
@@ -1122,7 +1122,8 @@ fill_log_entry(svn_log_entry_t *log_entr
   if (get_revprops && want_revprops)
     {
       /* User is allowed to see at least some revprops. */
-      SVN_ERR(svn_fs_revision_proplist(&r_props, fs, rev, pool));
+      SVN_ERR(svn_fs_revision_proplist2(&r_props, fs, rev, FALSE, pool,
+                                        pool));
       if (revprops == NULL)
         {
           /* Requested all revprops... */
@@ -2340,6 +2341,10 @@ svn_repos_get_logs4(svn_repos_t *repos,
       revprops = new_revprops;
     }
 
+  /* Make sure we catch up on the latest revprop changes.  This is the only
+   * time we will refresh the revprop data in this query. */
+  SVN_ERR(svn_fs_refresh_revision_props(fs, pool));
+
   /* Setup log range. */
   SVN_ERR(svn_fs_youngest_rev(&head, fs, pool));