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.