subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1595346 - in /subversion/trunk/subversion/libsvn_fs_x: ./ cached_data.c caching.c structure transaction.c
Date Fri, 16 May 2014 21:08:46 GMT
Author: stefan2
Date: Fri May 16 21:08:46 2014
New Revision: 1595346

Sync'ing FSX with FSFS:
Merge r1543594,1546100,1575418,1575430,1576427 from /subversion/libsvn_fs_fs
into subversion/libsvn_fs_x.  Conflicts were due earlier cherry-picks and
structural differences between FSX and FSFS.

This ports a documentation fixes.

    subversion/trunk/subversion/libsvn_fs_x/   (props changed)

Propchange: subversion/trunk/subversion/libsvn_fs_x/
  Merged /subversion/trunk/subversion/libsvn_fs_fs:r1543594,1546100,1575418,1575430,1576427

Modified: subversion/trunk/subversion/libsvn_fs_x/cached_data.c
--- subversion/trunk/subversion/libsvn_fs_x/cached_data.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/cached_data.c Fri May 16 21:08:46 2014
@@ -991,7 +991,7 @@ set_cached_window(svn_txdelta_window_t *
  * cache. This will be a no-op and IS_CACHED will be set to FALSE if no
  * cache has been given. If a cache is available IS_CACHED will inform
  * the caller about the success of the lookup. Allocations (of the window
- * in particualar) will be made from POOL.
+ * in particular) will be made from POOL.
 static svn_error_t *
 get_cached_combined_window(svn_stringbuf_t **window_p,

Modified: subversion/trunk/subversion/libsvn_fs_x/caching.c
--- subversion/trunk/subversion/libsvn_fs_x/caching.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/caching.c Fri May 16 21:08:46 2014
@@ -135,8 +135,8 @@ read_config(const char **cache_namespace
                                    ""), "2"))
       = svn_hash__get_bool(fs->config,
-                          SVN_FS_CONFIG_FSFS_CACHE_REVPROPS,
-                          FALSE);
+                           SVN_FS_CONFIG_FSFS_CACHE_REVPROPS,
+                           FALSE);
     *cache_revprops = svn_named_atomic__is_efficient();

Modified: subversion/trunk/subversion/libsvn_fs_x/structure
--- subversion/trunk/subversion/libsvn_fs_x/structure (original)
+++ subversion/trunk/subversion/libsvn_fs_x/structure Fri May 16 21:08:46 2014
@@ -59,6 +59,7 @@ repository) is:
   current             File specifying current revision and next node/copy id
   fs-type             File identifying this filesystem as an FSFS filesystem
   write-lock          Empty file, locked to serialise writers
+  pack-lock           Empty file, locked to serialise 'svnadmin pack' (f. 7+)
   txn-current-lock    Empty file, locked to serialise 'txn-current'
   uuid                File containing the UUID of the repository
   format              File containing the format number of this filesystem
@@ -78,9 +79,19 @@ The "write-lock" file is an empty file w
 final stage of a commit and unlocked after the new "current" file has
 been moved into place to indicate that a new revision is present.  It
 is also locked during a revprop propchange while the revprop file is
-read in, mutated, and written out again.  Note that readers are never
-blocked by any operation - writers must ensure that the filesystem is
-always in a consistent state.
+read in, mutated, and written out again.  Furthermore, it will be used
+to serialize the repository structure changes during 'svnadmin pack'
+(see also next section).  Note that readers are never blocked by any
+operation - writers must ensure that the filesystem is always in a
+consistent state.
+The "pack-lock" file is an empty file which is locked before an 'svnadmin
+pack' operation commences.  Thus, only one process may attempt to modify
+the repository structure at a time while other processes may still read
+and write (commit) to the repository during most of the pack procedure.
+It is only available with format 7 and newer repositories.  Older formats
+use the global write-lock instead which disables commits completely
+for the duration of the pack process.
 The "txn-current" file is a file with a single line of text that
 contains only a base-36 number.  The current value will be used in the

Modified: subversion/trunk/subversion/libsvn_fs_x/transaction.c
--- subversion/trunk/subversion/libsvn_fs_x/transaction.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/transaction.c Fri May 16 21:08:46 2014
@@ -3446,7 +3446,7 @@ commit_body(void *baton, apr_pool_t *poo
   /* Convert the index files from the proto format into their form
-      in their final location */
+     in their final location */
                     svn_fs_x__path_l2p_index(cb->fs, new_rev, pool),
                     svn_fs_x__path_l2p_proto_index(cb->fs, txn_id, pool),
@@ -3456,7 +3456,11 @@ commit_body(void *baton, apr_pool_t *poo
                     svn_fs_x__path_p2l_proto_index(cb->fs, txn_id, pool),
                     new_rev, pool));
-  /* Move the finished rev file into place. */
+  /* Move the finished rev file into place.
+     ### This "breaks" the transaction by removing the protorev file
+     ### but the revision is not yet complete.  If this commit does
+     ### not complete for any reason the transaction will be lost. */
   old_rev_filename = svn_fs_x__path_rev_absolute(cb->fs, old_rev, pool);
   rev_filename = svn_fs_x__path_rev(cb->fs, new_rev, pool);

View raw message