You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2012/02/28 08:17:34 UTC

svn commit: r1294495 - in /subversion/trunk/subversion/libsvn_fs_fs: fs_fs.c rep-cache-db.sql rep-cache.c rep-cache.h

Author: danielsh
Date: Tue Feb 28 07:17:34 2012
New Revision: 1294495

URL: http://svn.apache.org/viewvc?rev=1294495&view=rev
Log:
Follow-up to rr1294479: teach svn_fs_fs__walk_rep_reference() to check only
a range of revisions.

A subsequent revision will restore the "Look for rep-cache entries younger than
youngest" functionality.

* subversion/libsvn_fs_fs/fs_fs.c
  (svn_fs_fs__verify):
    Pass START and END to svn_fs_fs__walk_rep_reference().

* subversion/libsvn_fs_fs/rep-cache.h
  (svn_fs_fs__walk_rep_reference):
    Grow START and END parameters.

* subversion/libsvn_fs_fs/rep-cache.c
  (svn_fs_fs__walk_rep_reference):
    Pass START and END to STMT_GET_REPS_FOR_RANGE.

* subversion/libsvn_fs_fs/rep-cache-db.sql
  (STMT_GET_ALL_REPS): Rename to..
  (STMT_GET_REPS_FOR_RANGE): .. this, and add two parameters.

Modified:
    subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
    subversion/trunk/subversion/libsvn_fs_fs/rep-cache-db.sql
    subversion/trunk/subversion/libsvn_fs_fs/rep-cache.c
    subversion/trunk/subversion/libsvn_fs_fs/rep-cache.h

Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1294495&r1=1294494&r2=1294495&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Tue Feb 28 07:17:34 2012
@@ -7932,6 +7932,7 @@ svn_fs_fs__verify(svn_fs_t *fs,
        Don't take any lock. */
     SVN_ERR(svn_fs_fs__walk_rep_reference(fs, verify_walker, NULL,
                                           cancel_func, cancel_baton,
+                                          start, end,
                                           pool));
 
   /* Issue #4129: bogus pred-counts on the root node-rev. */

Modified: subversion/trunk/subversion/libsvn_fs_fs/rep-cache-db.sql
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/rep-cache-db.sql?rev=1294495&r1=1294494&r2=1294495&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/rep-cache-db.sql (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/rep-cache-db.sql Tue Feb 28 07:17:34 2012
@@ -47,9 +47,10 @@ INSERT OR FAIL INTO rep_cache (hash, rev
 VALUES (?1, ?2, ?3, ?4, ?5)
 
 
--- STMT_GET_ALL_REPS
+-- STMT_GET_REPS_FOR_RANGE
 SELECT hash, revision, offset, size, expanded_size
 FROM rep_cache
+WHERE revision >= ?1 AND revision <= ?2
 
 
 -- STMT_DEL_REPS_YOUNGER_THAN_REV

Modified: subversion/trunk/subversion/libsvn_fs_fs/rep-cache.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/rep-cache.c?rev=1294495&r1=1294494&r2=1294495&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/rep-cache.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/rep-cache.c Tue Feb 28 07:17:34 2012
@@ -146,6 +146,8 @@ svn_fs_fs__walk_rep_reference(svn_fs_t *
                               void *walker_baton,
                               svn_cancel_func_t cancel_func,
                               void *cancel_baton,
+                              svn_revnum_t start,
+                              svn_revnum_t end,
                               apr_pool_t *pool)
 {
   fs_fs_data_t *ffd = fs->fsap_data;
@@ -163,7 +165,9 @@ svn_fs_fs__walk_rep_reference(svn_fs_t *
 
   /* Get the statement. (There are no arguments to bind.) */
   SVN_ERR(svn_sqlite__get_statement(&stmt, ffd->rep_cache_db,
-                                    STMT_GET_ALL_REPS));
+                                    STMT_GET_REPS_FOR_RANGE));
+  SVN_ERR(svn_sqlite__bindf(stmt, "rr",
+                            start, end));
 
   /* Walk the cache entries. */
   SVN_ERR(svn_sqlite__step(&have_row, stmt));

Modified: subversion/trunk/subversion/libsvn_fs_fs/rep-cache.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/rep-cache.h?rev=1294495&r1=1294494&r2=1294495&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/rep-cache.h (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/rep-cache.h Tue Feb 28 07:17:34 2012
@@ -55,6 +55,8 @@ svn_fs_fs__walk_rep_reference(svn_fs_t *
                               void *walker_baton,
                               svn_cancel_func_t cancel_func,
                               void *cancel_baton,
+                              svn_revnum_t start,
+                              svn_revnum_t end,
                               apr_pool_t *pool);
 
 /* Return the representation REP in FS which has fulltext CHECKSUM.