Author: svn-role
Date: Tue Mar 27 04:00:07 2018
New Revision: 1827798

URL: http://svn.apache.org/viewvc?rev=1827798&view=rev
Log:
Merge the r1826811 group from trunk:

 * r1826811, r1826814, r1826877, r1826907, r1826971
   Fix issue 4725: FSFS block-read mode doesn't work.
   Justification:
     Block-read is enabled automatically when svnadmin has a cache bigger
     than 64MB.  It can be manually enabled in mod_dav_svn/svnserve.
   Votes:
     +1: philip, stefan2, rhuijben

Modified:
    subversion/branches/1.10.x/   (props changed)
    subversion/branches/1.10.x/STATUS
    subversion/branches/1.10.x/subversion/libsvn_fs_fs/cached_data.c
    subversion/branches/1.10.x/subversion/libsvn_fs_fs/temp_serializer.h
    subversion/branches/1.10.x/subversion/tests/cmdline/svnadmin_tests.py

Propchange: subversion/branches/1.10.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 27 04:00:07 2018
@@ -100,4 +100,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911,1820044,1820046-1820047,1820518,1820627,1820718,1820778,1821183,1821224,1821621,1821678,1822401,1822587,1822591,1822996,1823202-1823203,1823211,1823327,1823791,1823966,1823989,1824033,1825024,1825045,1825215,1825266,1825306,1825709,1825711,1825721,1825736,1825778,1825783,1825787-1825788,1826747,1827105,1827114,1827562
+/subversion/trunk:1817837,1817856,1818577-1818578,1818584,1818651,1818662,1818727,1818801,1818803,1818807,1818868,1818871,1819036-1819037,1819043,1819049,1819052,1819093,1819146,1819162,1819444,1819556-1819557,1819603,1819804,1819911,1820044,1820046-1820047,1820518,1820627,1820718,1820778,1821183,1821224,1821621,1821678,1822401,1822587,1822591,1822996,1823202-1823203,1823211,1823327,1823791,1823966,1823989,1824033,1825024,1825045,1825215,1825266,1825306,1825709,1825711,1825721,1825736,1825778,1825783,1825787-1825788,1826747,1826811,1826814,1826877,1826907,1826971,1827105,1827114,1827562

Modified: subversion/branches/1.10.x/STATUS
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.10.x/STATUS?rev=1827798&r1=1827797&r2=1827798&view=diff
==============================================================================
--- subversion/branches/1.10.x/STATUS (original)
+++ subversion/branches/1.10.x/STATUS Tue Mar 27 04:00:07 2018
@@ -39,14 +39,6 @@ Veto-blocked changes:
 Approved changes:
 =================
 
- * r1826811, r1826814, r1826877, r1826907, r1826971
-   Fix issue 4725: FSFS block-read mode doesn't work.
-   Justification:
-     Block-read is enabled automatically when svnadmin has a cache bigger
-     than 64MB.  It can be manually enabled in mod_dav_svn/svnserve.
-   Votes:
-     +1: philip, stefan2, rhuijben
-
  * r1827337
    Shelving: Name the subcommands 'x-shelve' etc.
    Justification:

Modified: subversion/branches/1.10.x/subversion/libsvn_fs_fs/cached_data.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/libsvn_fs_fs/cached_data.c?rev=1827798&r1=1827797&r2=1827798&view=diff
==============================================================================
--- subversion/branches/1.10.x/subversion/libsvn_fs_fs/cached_data.c (original)
+++ subversion/branches/1.10.x/subversion/libsvn_fs_fs/cached_data.c Tue Mar 27 
04:00:07 2018
@@ -1268,7 +1268,7 @@ parse_raw_window(void **out,
   stream = svn_stream_from_string(&raw_window, result_pool);
 
   /* parse it */
-  SVN_ERR(svn_txdelta_read_svndiff_window(&result->window, stream, 1,
+  SVN_ERR(svn_txdelta_read_svndiff_window(&result->window, stream, window->ver,
                                           result_pool));
 
   /* complete the window and return it */
@@ -3206,7 +3206,7 @@ init_rep_state(rep_state_t *rs,
   rs->start = entry->offset + rs->header_size;
   rs->current = rep_header->type == svn_fs_fs__rep_plain ? 0 : 4;
   rs->size = entry->size - rep_header->header_size - 7;
-  rs->ver = 1;
+  rs->ver = -1;
   rs->chunk_index = 0;
   rs->raw_window_cache = ffd->raw_window_cache;
   rs->window_cache = ffd->txdelta_window_cache;
@@ -3264,6 +3264,9 @@ cache_windows(svn_fs_t *fs,
               apr_pool_t *pool)
 {
   apr_pool_t *iterpool = svn_pool_create(pool);
+
+  SVN_ERR(auto_read_diff_version(rs, iterpool));
+
   while (rs->current < rs->size)
     {
       apr_off_t end_offset;
@@ -3324,6 +3327,7 @@ cache_windows(svn_fs_t *fs,
           window.end_offset = rs->current;
           window.window.len = window_len;
           window.window.data = buf;
+          window.ver = rs->ver;
 
           /* cache the window now */
           SVN_ERR(svn_cache__set(rs->raw_window_cache, &key, &window,

Modified: subversion/branches/1.10.x/subversion/libsvn_fs_fs/temp_serializer.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/libsvn_fs_fs/temp_serializer.h?rev=1827798&r1=1827797&r2=1827798&view=diff
==============================================================================
--- subversion/branches/1.10.x/subversion/libsvn_fs_fs/temp_serializer.h 
(original)
+++ subversion/branches/1.10.x/subversion/libsvn_fs_fs/temp_serializer.h Tue 
Mar 27 04:00:07 2018
@@ -60,6 +60,9 @@ typedef struct
 
   /* the offset within the representation right after reading the window */
   apr_off_t end_offset;
+
+  /* svndiff version */
+  int ver;
 } svn_fs_fs__raw_cached_window_t;
 
 /**

Modified: subversion/branches/1.10.x/subversion/tests/cmdline/svnadmin_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/1.10.x/subversion/tests/cmdline/svnadmin_tests.py?rev=1827798&r1=1827797&r2=1827798&view=diff
==============================================================================
--- subversion/branches/1.10.x/subversion/tests/cmdline/svnadmin_tests.py 
(original)
+++ subversion/branches/1.10.x/subversion/tests/cmdline/svnadmin_tests.py Tue 
Mar 27 04:00:07 2018
@@ -3801,6 +3801,28 @@ def dump_invalid_filtering_option(sbox):
                                           '--include', '/A/B/E',
                                           sbox.repo_dir)
 
+@Issue(4725)
+def load_issue4725(sbox):
+  """load that triggers issue 4725"""
+
+  sbox.build(empty=True)
+
+  sbox.simple_mkdir('subversion')
+  sbox.simple_commit()
+  sbox.simple_mkdir('subversion/trunk')
+  sbox.simple_mkdir('subversion/branches')
+  sbox.simple_commit()
+  sbox.simple_mkdir('subversion/trunk/src')
+  sbox.simple_commit()
+
+  _, dump, _ = svntest.actions.run_and_verify_svnadmin(None, [],
+                                                       'dump', '-q',
+                                                       sbox.repo_dir)
+
+  sbox2 = sbox.clone_dependent()
+  sbox2.build(create_wc=False, empty=True)
+  load_and_verify_dumpstream(sbox2, None, [], None, False, dump, '-M100')
+
 ########################################################################
 # Run the tests
 
@@ -3873,7 +3895,8 @@ test_list = [ None,
               dump_exclude_by_pattern,
               dump_include_by_pattern,
               dump_exclude_all_rev_changes,
-              dump_invalid_filtering_option
+              dump_invalid_filtering_option,
+              load_issue4725,
              ]
 
 if __name__ == '__main__':


Reply via email to