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 2010/12/02 07:57:21 UTC

svn commit: r1041293 - /subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

Author: danielsh
Date: Thu Dec  2 06:57:21 2010
New Revision: 1041293

URL: http://svn.apache.org/viewvc?rev=1041293&view=rev
Log:
* subversion/libsvn_fs_fs/fs_fs.c
  (open_pack_or_rev_file):
    Avoid the retry logic (which might call update_min_unpacked_rev() and
    therein trigger an assert) when the filesystem format is older than packing.

Suggested by: philip

Modified:
    subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c

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=1041293&r1=1041292&r2=1041293&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Thu Dec  2 06:57:21 2010
@@ -1901,10 +1901,15 @@ open_pack_or_rev_file(apr_file_t **file,
                       svn_revnum_t rev,
                       apr_pool_t *pool)
 {
+  fs_fs_data_t *ffd = fs->fsap_data;
   svn_error_t *err;
   const char *path;
   svn_boolean_t retry = FALSE;
 
+  /* If the filesystem doesn't support packing, try once instead of twice. */
+  if (ffd->format < SVN_FS_FS__MIN_PACKED_FORMAT)
+    retry = TRUE;
+
   do
     {
       err = svn_fs_fs__path_rev_absolute(&path, fs, rev, pool);
@@ -1925,7 +1930,8 @@ open_pack_or_rev_file(apr_file_t **file,
             return svn_error_createf(SVN_ERR_FS_NO_SUCH_REVISION, NULL,
                                     _("No such revision %ld"), rev);
 
-          /* we failed for the first time. Refresh cache & retry. */
+          /* We failed for the first time. Refresh cache & retry.
+             (We already know the format is new enough.) */
           SVN_ERR(update_min_unpacked_rev(fs, pool));
 
           retry = TRUE;