You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/12/02 15:52:00 UTC

svn commit: r1547042 - in /subversion/branches/fsfs-ucsnorm: BRANCH-README subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.c

Author: brane
Date: Mon Dec  2 14:52:00 2013
New Revision: 1547042

URL: http://svn.apache.org/r1547042
Log:
On the fsfs-ucsnorm branch: Rename the normalization option in fsfs.conf,
add parsing code, and clarify semantics in BRANCH-README.

* BRANCH-README: Update the documented semantics of the proposed change.

* subversion/libsvn_fs_fs/fs.h (CONFIG_OPTION_NORMALIZED_LOOKUP):
   Renamed from CONFIG_OPTION_ENABLE_NORMALIZED_LOOKUP.
  (SVN_FS_FS__MIN_DEFAULT_NORMALIZED_LOOKUP_FORMAT): New. Normalization
   will be enabled by default in FSFSv7 and above.
  (fs_fs_data_t): New member 'normalized_lookup'.
* subversion/libsvn_fs_fs/fs_fs.c (read_config):
   Parse the normalized-lookup option into the fs_fs_data_t stuct.
  (write_config): Update normalization doc and option name.

Modified:
    subversion/branches/fsfs-ucsnorm/BRANCH-README
    subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs.h
    subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs_fs.c

Modified: subversion/branches/fsfs-ucsnorm/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/BRANCH-README?rev=1547042&r1=1547041&r2=1547042&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/BRANCH-README [UTF-8] (original)
+++ subversion/branches/fsfs-ucsnorm/BRANCH-README [UTF-8] Mon Dec  2 14:52:00 2013
@@ -17,23 +17,29 @@ option can be disabled or enabled at any
 the repository; however, it is not safe to enable it without first
 running:
 
-        svnadmin verify REPOS --check-ucs-normalization
+        svnadmin verify REPOS --check-normalization
 
 
 Proposed argument to 'svnadmin create':
 
         svnadmin create REPOS --disable-normalized-lookup
 
+        Without this option, normalized lookup will be enabled by
+        default.
+
 Proposed argument to 'svnadmin upgrade':
 
         svnadmin upgrade REPOS --enable-normalized-lookup
 
+        Without this option, normalized lookup will be disabled during
+        format upgrade, unless it was already enabled in fsfs.conf.
+
 Proposed option in fsfs.conf:
 
         [normalization]
-        enable-normalized-lookup = true|false
+        normalized-lookup = true|false
 
-        Default value: true
+        Default value: true (in FSFSv7; false for older formats)
 
 
 References

Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs.h?rev=1547042&r1=1547041&r2=1547042&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs.h (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs.h Mon Dec  2 14:52:00 2013
@@ -102,7 +102,7 @@ extern "C" {
 #define CONFIG_OPTION_REVPROP_PACK_SIZE  "revprop-pack-size"
 #define CONFIG_OPTION_COMPRESS_PACKED_REVPROPS  "compress-packed-revprops"
 #define CONFIG_SECTION_NORMALIZATION     "normalization"
-#define CONFIG_OPTION_ENABLE_NORMALIZED_LOOKUP  "enable-normalized-lookup"
+#define CONFIG_OPTION_NORMALIZED_LOOKUP  "normalized-lookup"
 
 /* The format number of this filesystem.
    This is independent of the repository format number, and
@@ -153,6 +153,9 @@ extern "C" {
 /* Minimum format number that will record moves */
 #define SVN_FS_FS__MIN_MOVE_SUPPORT_FORMAT 7
 
+/* Minimum format where normalized lookup should be enabled by default. */
+#define SVN_FS_FS__MIN_DEFAULT_NORMALIZED_LOOKUP_FORMAT 7
+
 /* The minimum format number that supports a configuration file (fsfs.conf) */
 #define SVN_FS_FS__MIN_CONFIG_FILE 4
 
@@ -401,6 +404,9 @@ typedef struct fs_fs_data_t
    * deltification history after which skip deltas will be used. */
   apr_int64_t max_linear_deltification;
 
+  /* Whether normalization-insensitive path lookup is enabled. */
+  svn_boolean_t normalized_lookup;
+
   /* Pointer to svn_fs_open. */
   svn_error_t *(*svn_fs_open_)(svn_fs_t **, const char *, apr_hash_t *,
                                apr_pool_t *);

Modified: subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs_fs.c?rev=1547042&r1=1547041&r2=1547042&view=diff
==============================================================================
--- subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/fsfs-ucsnorm/subversion/libsvn_fs_fs/fs_fs.c Mon Dec  2 14:52:00 2013
@@ -420,6 +420,9 @@ read_config(fs_fs_data_t *ffd,
             const char *fs_path,
             apr_pool_t *pool)
 {
+  const svn_boolean_t default_normalized_lookup =
+    (ffd->format >= SVN_FS_FS__MIN_DEFAULT_NORMALIZED_LOOKUP_FORMAT);
+
   SVN_ERR(svn_config_read3(&ffd->config,
                            svn_dirent_join(fs_path, PATH_CONFIG, pool),
                            FALSE, FALSE, FALSE, pool));
@@ -482,6 +485,16 @@ read_config(fs_fs_data_t *ffd,
       ffd->compress_packed_revprops = FALSE;
     }
 
+  /* Initialize normalization settings in ffd.
+
+     Note: enable-normalized-lookups does not affect the filesystem
+           contents; therefore, its availability does not have to be
+           limited to any particular FS format version. */
+  SVN_ERR(svn_config_get_bool(ffd->config, &ffd->normalized_lookup,
+                              CONFIG_SECTION_NORMALIZATION,
+                              CONFIG_OPTION_NORMALIZED_LOOKUP,
+                              default_normalized_lookup));
+
   return SVN_NO_ERROR;
 }
 
@@ -634,14 +647,14 @@ write_config(svn_fs_t *fs,
 "### filesystem. The representation of new paths will still be preserved;"   NL
 "### FSFS will not normalize them, and will return them from queries in the" NL
 "### same form in which they were created."                                  NL
-"### Normalized lookup is enabled by default for new FSFS repositories."     NL
-"# " CONFIG_OPTION_ENABLE_NORMALIZED_LOOKUP " = true"                        NL
+"### Normalized lookup is enabled by default for new FSFSv7 repositories."   NL
+"# " CONFIG_OPTION_NORMALIZED_LOOKUP " = true"                               NL
 "###"                                                                        NL
 "### WARNING: Before enabling this option for existing repositories, you "   NL
 "###          must verify that there are no extant name collisions by"       NL
 "###          running the following command:"                                NL
 "###"                                                                        NL
-"###              svnadmin verify <REPOS-PATH> --check-ucs-normalization"    NL
+"###              svnadmin verify <REPOS-PATH> --check-normalization"        NL
 ;
 #undef NL
   return svn_io_file_create(svn_dirent_join(fs->path, PATH_CONFIG, pool),