Proposed patch attached: prune-rep-cache-1.patch

-- 
- Julian
Let "svnadmin recover" prune the FSFS rep-cache even if it's not being used.

Part of issue #4077 "FSFS recover should prune unborn revisions from
rep-cache.db".

This was included as r1213716 in the original fix for issue #4077, first
released in Subversion 1.7.3, but was reverted in r1367674 (issue #4214)
and so omitted from Subversion 1.8 and later series of releases.

* subversion/libsvn_fs_fs/recovery.c
  (recover_body): Prune the rep-cache no matter whether it's in use.
--This line, and those below, will be ignored--

Index: subversion/libsvn_fs_fs/recovery.c
===================================================================
--- subversion/libsvn_fs_fs/recovery.c	(revision 1837286)
+++ subversion/libsvn_fs_fs/recovery.c	(working copy)
@@ -468,15 +468,15 @@ recover_body(void *baton, apr_pool_t *po
                                _("Revision %ld has a non-file where its "
                                  "revprops file should be"),
                                max_rev);
     }
 
   /* Prune younger-than-(newfound-youngest) revisions from the rep
-     cache if sharing is enabled taking care not to create the cache
-     if it does not exist. */
-  if (ffd->rep_sharing_allowed)
+     cache, no matter whether sharing is currently enabled, taking care
+     not to create the cache if it does not exist. */
+  if (ffd->format >= SVN_FS_FS__MIN_REP_SHARING_FORMAT)
     {
       svn_boolean_t rep_cache_exists;
 
       SVN_ERR(svn_fs_fs__exists_rep_cache(&rep_cache_exists, fs, pool));
       if (rep_cache_exists)
         SVN_ERR(svn_fs_fs__del_rep_reference(fs, max_rev, pool));

Reply via email to