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 2013/12/02 18:36:25 UTC

svn propchange: r1547045 - svn:log

Author: stefan2
Revision: 1547045
Modified property: svn:log

Modified: svn:log at Mon Dec  2 17:36:25 2013
------------------------------------------------------------------------------
--- svn:log (original)
+++ svn:log Mon Dec  2 17:36:25 2013
@@ -1,2 +1,141 @@
 Merge FSFS format 7 into /trunk, i.e. everything from the 
 fsfs-improvements branch. There were no conflicts.
+
+For easier review, the following is a summary of the changes.
+Please refer to either the in-source comments or the original
+commit messages for details.
+
+BRANCH-README contains a feature overview.  The structure and
+structure-indexes files contain a detailed description of the
+new addressing concepts and their external representation.
+
+* BRANCH-README
+  (): Replace the old description with that for FSFS f7.
+
+* subversion/libsvn_fs_fs/structure
+  (): Add format 7 to format list and add index files as new
+      elements.  Describe the concept of addressing modes,
+      "item index" and "item type" in detail.  Explain the
+      intention behind the new pack code.
+
+* subversion/libsvn_fs_fs/structure-indexes
+  (): New file.
+      Detailed description of the two-way mapping between
+      logical and physical addresses.  Also describes the
+      binary format used to store the index files on disk.
+
+* subversion/libsvn_fs_fs/index.*
+  (): New files.
+      Add a FSFS-private API for both indexes providing the
+      mapping functionality as defined in structure-indexes.
+
+* subversion/libsvn_fs_fs/rev_file.*
+  (): New files.
+      Provide a FSFS-private API that combines the 3 physical
+      files (rev/pack, 2 x index) into a common data structure
+      and ensures that they are being accessed consistently wrt.
+      pack state.  This is necessary when there is an svnadmin
+      pack running in the background while we read the repo.
+
+* subversion/libsvn_fs_fs/id.*
+  (): Replace OFFSET with ITEM_INDEX.
+  (svn_fs_fs__id_create_root): New utility function enabled by
+                               all root nodes having the same
+                               item index.
+
+* subversion/libsvn_fs_fs/util.*
+  (): Add new path constructors for index files.  Move item
+      to offset mapping and rev / pack file open functions
+      to their respective new API files.
+
+* subversion/libsvn_fs_fs/low_level.*
+  (): Replace OFFSET with ITEM_INDEX.
+
+* subversion/libsvn_fs_fs/fs.h
+  (PATH_*): Path constants for the new index files.
+  (CONFIG_*): New fsfs.conf configuration options.
+  (SVN_FS_FS__FORMAT_NUMBER): Bump format number.
+  (*_t): Replace OFFSET with ITEM_INDEX.
+  (fs_fs_data_t): Add config settings and caches for the various
+                  index elements.
+
+* subversion/libsvn_fs_fs/caching.c
+  (svn_fs_fs__initialize_caches): Initialize new caches.
+
+* subversion/libsvn_fs_fs/fs.c
+  (initialize_fs_struct): Default to physical addressing.
+
+* subversion/libsvn_fs_fs/fs_fs.c
+  (): Handle new addressing format info and config file options.
+      Use a different revision 0 template for format 7.
+
+* subversion/libsvn_fs_fs/cached_data.c
+  (): Switch file access function to the new rev_file API.
+      Follow the OFFSET to ITEM_INDEX rename.
+      Implement the "block read" feature and make all data read
+      functionality use the block_read() function.
+  (dbg_log_access): Produce a more detailed access log in logical
+                    addressing mode.
+
+* subversion/libsvn_fs_fs/transaction.c
+  (): Provide generic item_index allocator and index writer
+      functions that work in both addressing modes.  Also, add
+      wrappers streams that calculate the new low-level FVN-1a
+      checksums for everything we write to disk.  Invoke all
+      of this when writing data to the proto-rev file.  Finally,
+      predict the addressing mode of the future revision and
+      upgrade transactions from physical to log addressing mode
+      upon misprediction or for old txns.
+
+* subversion/libsvn_fs_fs/pack.h
+  (svn_fs_fs__order_dir_entries): In mixed addressing mode repos,
+                                  the optimal read order depends
+                                  on the revision number.
+
+* subversion/libsvn_fs_fs/pack.c
+  (): Implement the new reorder-on-pack feature that is a core
+      element of f7.  Details of it are described at the top of
+      this file.
+  (svn_fs_fs__order_dir_entries): Select the optimal order depending
+                                  on the addressing mode.
+
+* subversion/libsvn_fs_fs/tree.c
+  (fs_dir_optimal_order): Adapt to pack API change.
+
+* subversion/libsvn_fs_fs/verify.c
+  (): In log. addressing mode, verify the forward and backward
+      indexes are consistent with one another.  Verify that rev /
+      pack file size match the index values and that the low-level
+      checksums for every item in the rev / pack file match the
+      index data as well.
+
+* subversion/libsvn_fs_fs/hotcopy.c
+  (): Copy the new index files as well, if the respective revs
+      use logical addressing.  Also, clean them up when a shard
+      got packed since the last incremental hotcopy.
+
+* subversion/libsvn_fs_fs/recovery.c
+  (): Adapt to new rev_file API and ID API changes.
+
+* subversion/libsvn_fs_fs/rep-cache.c
+  (): Follow the OFFSET to ITEM_INDEX rename.
+
+* subversion/tests/cmdline/svnadmin_tests.py
+  (): Add very limited f7 index read functionality - just enough
+      to manipulate the changed paths lists in f7 as well.  Update
+      expected output patterns for f7.  Restrict verify_non_utf8_paths
+      to pre-f7 repos as manipulating f7 repos is harder and not
+      relevant for the code / test coverage here.
+
+* subversion/tests/cmdline/svntest/main.py
+  (is_fs_log_addressing): FSFS f7 also uses log addressing.
+
+* subversion/tests/libsvn_fs_fs
+  (): svn:ignore test repositories
+
+* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
+  (): Write correct addressing mode info and check for the right
+      files in packed f7 repos.  Add tests TXN format upgrade tests.
+
+* tools/server-side/svn-rep-sharing-stats.c
+  (record): Follow the OFFSET to ITEM_INDEX rename.